- Dart 编程教程
- Dart 编程 - 主页
- Dart 编程 - 概述
- Dart 编程 - 环境
- Dart 编程 - 语法
- Dart 编程 - 数据类型
- Dart 编程 - 变量
- Dart 编程 - 运算符
- Dart 编程 - 循环
- Dart 编程 - 决策
- Dart 编程 - 数字
- Dart 编程 - 字符串
- Dart 编程 - 布尔值
- Dart 编程 - 列表
- Dart 编程 - 列表
- Dart 编程 - 地图
- Dart 编程 - 符号
- Dart 编程 - 符文
- Dart 编程 - 枚举
- Dart 编程 - 函数
- Dart 编程 - 接口
- Dart 编程 - 类
- Dart 编程 - 对象
- Dart 编程 - 集合
- Dart 编程 - 泛型
- Dart 编程 - 包
- Dart 编程 - 异常
- Dart 编程 - 调试
- Dart 编程 - Typedef
- Dart 编程 - 库
- Dart 编程 - 异步
- Dart 编程 - 并发
- Dart 编程 - 单元测试
- Dart 编程 - HTML DOM
- Dart 编程有用的资源
- Dart 编程 - 快速指南
- Dart 编程 - 资源
- Dart 编程 - 讨论
Dart 编程 - 泛型
Dart 是一种可选类型的语言。Dart 中的集合默认是异构的。换句话说,单个 Dart 集合可以托管各种类型的值。然而,Dart 集合可以保存同质值。泛型的概念可以用来实现同样的目的。
泛型的使用对集合中可以包含的值的数据类型施加了限制。此类集合称为类型安全集合。类型安全是一种编程功能,可确保内存块只能包含特定数据类型的数据。
所有 Dart 集合都支持通过泛型实现类型安全。包含数据类型的一对尖括号用于声明类型安全集合。声明类型安全集合的语法如下所示。
句法
Collection_name <data_type> identifier= new Collection_name<data_type>
下面给出了 List、Map、Set 和 Queue 的类型安全实现。上述集合类型的所有实现也支持此功能。
示例:通用列表
无效主(){
列表 <String> logTypes = new List <String>();
logTypes.add("警告");
logTypes.add("错误");
logTypes.add("INFO");
// 遍历列表
for (logTypes 中的字符串类型) {
打印(类型);
}
}
它应该产生以下输出-
WARNING ERROR INFO
尝试插入指定类型以外的值将导致编译错误。下面的例子说明了这一点。
例子
void main() {
List <String> logTypes = new List <String>();
logTypes.add(1);
logTypes.add("ERROR");
logTypes.add("INFO");
//iterating across list
for (String type in logTypes) {
print(type);
}
}
它应该产生以下输出-
1 ERROR INFO
示例:通用集
void main() {
Set <int>numberSet = new Set<int>();
numberSet.add(100);
numberSet.add(20);
numberSet.add(5);
numberSet.add(60);
numberSet.add(70);
// numberSet.add("Tom");
compilation error;
print("Default implementation :${numberSet.runtimeType}");
for(var no in numberSet) {
print(no);
}
}
它应该产生以下输出-
Default implementation :_CompactLinkedHashSet<int> 100 20 5 60 70
示例:通用队列
导入“dart:集合”;
无效主(){
Queue<int> 队列 = new Queue<int>();
print("默认实现${queue.runtimeType}");
队列.addLast(10);
队列.addLast(20);
队列.addLast(30);
队列.addLast(40);
队列.removeFirst();
for(int 队列中没有){
打印(否);
}
}
它应该产生以下输出-
Default implementation ListQueue<int> 20 30 40
通用地图
类型安全映射声明指定以下数据类型 -
- 钥匙
- 价值
句法
Map <Key_type, value_type>
例子
无效主(){
地图 <String,String>m={'name':'Tom','Id':'E1001'};
print('地图:${m}');
}
它应该产生以下输出-
Map :{name: Tom, Id: E1001}