发文时间:2021年03月07日 22:15:12 编辑:Aaron 标签:记录Dart语言的学习历程 686
Dart是谷歌开发的计算机编程语言,后来被Ecma (ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。
//泛型方法 //需求 传入int类型 返回int类型 ,传入String 类型 返回String类型 方法(传入什么类型 就返回什么类型) T getData<T> (T value){ //T可以用其他字母代替 return value; } /* 方法前加T的话,对返回类型也会做限定(只能动态返回) 如若不加的话 那就是对返回类型 不做限定 */ //泛型类 main(){ //泛型方法 var a= getData<String>('xxxxx'); //String 更改这里的值就好了 定义你当前所需要的类型 //因为当前定义的是String类型 如若你传入的是int类型 那就会报错 print(a); }
//泛型类 //需求 定义一个类 可以传入int数据 又可以String的数据等等 class Mylist<T>{ List list=<T>[]; void add(T value){ this.list.add(value); } getInfo(){ print(list); } } main(){ //调用泛型类 //不指定的话 那就是任意类型 // Mylist b=new Mylist(); // b.add('第一个数据'); // b.add(2222); // b.getInfo();//[第一个数据, 2222] //假设指定类型 当前类里只能传入int类型 Mylist b=new Mylist<int>(); b.add(11111); //只能int类型 不然报错 b.add(2222); b.getInfo();//成功输出 [11111, 2222] }
//定义接口的规范性 abstract class Cache<T>{ getBykey(String key); void setBukey(String key,T value); } //定义两个类 class Aclass<T> implements Cache<T>{ getBykey(String key){ return null; } setBukey(String key,T value){ print("我是第11111111个方法 ${key} -- ${value}"); } } //定义两个 class Bclass<T> implements Cache<T>{ getBykey(String key){ return null; } setBukey(String key,T value){ print("我是第2222222222个方法 ${key} -- ${value}"); } } main(){ //需求定义 指定传入的参数必须要string类型 Bclass m=new Bclass<String>(); m.setBukey('key值111','我是b里面的值');//成功调用 (如果你当前传入int 那就会报错了)
若无特殊说明,此文章为博主原创。 写稿不易,如需转载,请注明出处: https://www.aaroner.cn/art/45.html
Dart系列(十四) 泛型方法-泛型类- 泛型接口
发文时间:2021年03月07日 22:15:12 编辑:Aaron 标签:记录Dart语言的学习历程 686
Dart是谷歌开发的计算机编程语言,后来被Ecma (ECMA-408)认定为标准。它被用于web、服务器、移动应用和物联网等领域的开发。
dart 中的泛型 - 泛型方法 泛型类 泛型接口
泛型就是解决接口的通用性,就好比
1、 你当前传入int 你希望返回的也是int
2、 你当前传入String 你希望返回的也是String
按普通的方法来写 那就得写两个方法 这样的话 代码很冗余
若无特殊说明,此文章为博主原创。
写稿不易,如需转载,请注明出处: https://www.aaroner.cn/art/45.html