美文网首页
Dart 基础语法-泛型

Dart 基础语法-泛型

作者: 西门淋雨 | 来源:发表于2024-10-27 15:50 被阅读0次

1.可用于List,Set,Map

//List
var names = <String>['Seth', 'Kathy', 'Lars'];
//Set
var uniqueNames = <String>{'Seth', 'Kathy', 'Lars'};
//Map
var pages = <String, String>{
  'index.html': 'Homepage',
  'robots.txt': 'Hints for web robots',
  'humans.txt': 'We are people, not machines'
};

2.可用于方法

T first<T>(List<T> ts) {
  // Do some initial work or error checking, then...
  T tmp = ts[0];
  // Do some additional checking or processing...
  return tmp;
}

3.泛型类

class Cache<T>{
  /// 缓存数据存储到该 Map 集合中
  Map<String, Object> _map = Map();

  /// 设置泛型缓存数据 , 该方法是泛型方法
  /// 此处将 T 类型的数据存放到 map 集合中
  void setCacheItem(String key, T value){
    _map[key] = value;
  }

  /// 取出泛型缓存数据 , 该方法是泛型方法
  T getCachedItem(String key){
    return _map[key];
  }
}

使用如下:

Cache<String> cache = Cache(); 
// 调用泛型方法时 , 传入的参数必须符合对应的泛型类型
// 泛型约束 : 泛型使用时会进行类型检查约束 , 如果设置错误的类型 , 编译时报错
cache.setCacheItem("name", "Tom");

// 获取缓存内容
String value = cache.getCachedItem("name");
print("泛型测试, 类型字符串, 获取的缓存内容为 ${value}");

// 创建泛型类对象 , 泛型类型设置为 int 类型
Cache<int> cache2 = Cache();
// 调用泛型方法时 , 传入的参数必须符合对应的泛型类型
// 泛型约束 : 泛型使用时会进行类型检查约束 , 如果设置错误的类型 , 编译时报错
cache2.setCacheItem("age", 18);

// 获取缓存内容
int value2 = cache2.getCachedItem("age");
print("泛型测试, 类型整型, 获取的缓存内容为 ${value2}");

输出结果:

I/flutter (24673): 泛型测试, 类型字符串, 获取的缓存内容为 Tom
I/flutter (24673): 泛型测试, 类型整型, 获取的缓存内容为 18

相关文章

  • Dart语言简介 2019-03-18

    标签(空格分隔): Dart Flutter Dart在静态语法方面和Java非常相似,如类型定义、函数声明、泛型...

  • Dart语法 -- [07 - 泛型]

    1.1. List和Map的泛型 List使用时的泛型写法: Map使用时的泛型写法: 1.2. 类定义的泛型 如...

  • dart语法速览

    dart语法速览 类与构造 泛型 Factory与私有 生成器 类型别名 异步

  • Dart基础(八)-泛型

    1.简介:   Dart语言是强类型语言,强类型语言都支持泛型Generics。那么什么是泛型呢?泛型是指代码在使...

  • dart语法7-泛型

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

  • Java泛型详解

    一、泛型简介 1.引入泛型的目的 了解引入泛型的动机,就先从语法糖开始了解。 语法糖 语法糖(Syntactic ...

  • 【阿里P8大牛教你Android入门之路(java篇)】Java

    一、泛型简介 1.引入泛型的目的 了解引入泛型的动机,就先从语法糖开始了解。 语法糖 语法糖(Syntactic ...

  • Java泛型总结

    一、泛型简介1.引入泛型的目的 了解引入泛型的动机,就先从语法糖开始了解。 语法糖 语法糖(Syntactic S...

  • Dart基础/Flutter-泛型

  • Dart 泛型

    解决类、接口、方法的复用性以及对不特定数据类型的支持(类型校验) 这种输出指定的类型,可以使用泛型解决 字母 T ...

网友评论

      本文标题:Dart 基础语法-泛型

      本文链接:https://www.haomeiwen.com/subject/dpfudjtx.html