Dart - 泛型(Generics)

Dart - 泛型(Generics) 首页 / Dart入门教程 / Dart - 泛型(Generics)

泛型Generics对数据类型增加了限制条件,这样的集合称为类型安全集合,类型安全是一种编程函数,可确保存储块只能包含特定数据类型的数据。

Generics - 语法

Collection_name <data_type> identifier= new Collection_name<data_type> 

List,Map,Set和Queue的类型安全实现如下所示,上述收集类型的所有实现也支持此函数。

Generics - 字符串列表

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

尝试插入指定类型以外的值将导致编译错误,以下示例说明了这一点。

Generics - 示例 

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

Generics - Set集合

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

Generics - 队列

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

Generics - Map映射

类型安全的Map声明指定的数据类型

Map <Key_type, value_type>

Map - 示例 

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}

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Swift核心技术与实战 -〔张杰〕

编译原理之美 -〔宫文学〕

ZooKeeper实战与源码剖析 -〔么敬国〕

性能测试实战30讲 -〔高楼〕

张汉东的Rust实战课 -〔张汉东〕

成为AI产品经理 -〔刘海丰〕

如何成为学习高手 -〔高冷冷〕

零基础入门Spark -〔吴磊〕

结构思考力 · 透过结构看问题解决 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)