泛型Generics对数据类型增加了限制条件,这样的集合称为类型安全集合,类型安全是一种编程函数,可确保存储块只能包含特定数据类型的数据。
Collection_name <data_type> identifier= new Collection_name<data_type>
List,Map,Set和Queue的类型安全实现如下所示,上述收集类型的所有实现也支持此函数。
void main() { List <String> logTypes=new List <String>(); logTypes.add("LEARNFK"); logTypes.add("TOOLFK"); logTypes.add("CHROMEFK"); //遍历列表 for (String type in logTypes) { print(type); } }
它应该产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/dart-programming/dart-programming-generics.html
来源:LearnFk无涯教程网
LEARNFK
TOOLFK
CHROMEFK
尝试插入指定类型以外的值将导致编译错误,以下示例说明了这一点。
void main() { List <String> logTypes=new List <String>(); logTypes.add(1); logTypes.add("LEARNFK"); logTypes.add("TOOLFK"); //遍历列表 for (String type in logTypes) { print(type); } }
它应该产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/dart-programming/dart-programming-generics.html
来源:LearnFk无涯教程网
1 LEARNFK TOOLFK
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"); //编译错误; print("Default implementation :${numberSet.runtimeType}"); for(var no in numberSet) { print(no); } }
它应该产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/dart-programming/dart-programming-generics.html
来源:LearnFk无涯教程网
Default implementation :_CompactLinkedHashSet<int> 100 20 5 60 70
import 'dart:collection'; void main() { Queue<int> queue=new Queue<int>(); print("Default implementation ${queue.runtimeType}"); queue.addLast(10); queue.addLast(20); queue.addLast(30); queue.addLast(40); queue.removeFirst(); for(int no in queue){ print(no); } }
它应该产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/dart-programming/dart-programming-generics.html
来源:LearnFk无涯教程网
Default implementation ListQueue<int> 20 30 40
类型安全的Map声明指定的数据类型
Map <Key_type, value_type>
void main() { Map <String,String>m={'name':'Learnfk','Id':'E1001'}; print('Map :${m}'); }
它应该产生以下输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/dart-programming/dart-programming-generics.html
来源:LearnFk无涯教程网
Map :{name: Learnfk, Id: E1001}
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)