Wesukilaye

Your choices please me, for now


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Dart 泛型

发表于 2019-08-13 分类于 Dart
本文字数: 1.5k 阅读时长 ≈ 1 分钟

优点

  • 适当地指定泛型类型会生成更好的代码。
  • 可以使用泛型来减少代码重复。
  • 泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验)

如泛型数组

1
2
3
var names = List();
names.addAll(['Seth', 'Kathy', 'Lars']);
names.add(42); // Error

泛型方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 getData(T value){
return value;
}

void main(){

// print(getData(21));

// print(getData('xxx'));

// getData('你好');

print(getData(12));

}

泛型接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
abstract class Storage{
Map m = new Map();
void set(String key, T value);
void get(String key);
}

class Cache implements Storage {
@override
Map m = new Map();

@override
void get(String key) {
print(m[key]);
}

@override
void set(String key, T value) {
print('set successed!');
m[key] = value;
}
}
-----------------------
Cache ch = new Cache();
ch.set('name', '123');
// ch.set('name', 1232); // type 'int' is not a subtype of type 'String' of 'value'
ch.get('name');

Cache ch2 = new Cache();
// ch2.set('name', '23'); // type 'String' is not a subtype of type 'Map' of 'value'
ch2.set('ptbird', {'name': 'pt', 'age': 20});
ch2.get('ptbird');
-------------------
结果:
set successed!
123
set successed!
{name: pt, age: 20}
  • 本文作者: Mr.Zhao
  • 本文链接: https://wesukilayezcy.github.io/2019/08/13/Dart-泛型/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
Dart 泛型
Dart 函数
-------------本文结束感谢您的阅读-------------
  • 文章目录
  • 站点概览
Wesukilaye

Wesukilaye

熟练使用iOS Objective-c,Swift. 了解Python爬取网络数据,深入研究移动端开发,目前正在学习Flutter
23 日志
4 分类
16 标签
RSS
GitHub E-Mail bilibili
Links
  • Jacksu
  1. 1. 优点
  2. 2. 如泛型数组
  3. 3. 泛型方法
  4. 4. 泛型接口
© 2019 Wesukilaye | 62k | 57 分钟
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.3.0