本文首发于个人博客
泛型
- 泛型是很多语言都支持的一种语法。例如Swift,Java,C++等。之前的文章C++语法之模板 详细介绍了C++中的泛型。
List泛型使用
- List 的泛型使用
1 | // 创建List的方式 |
上面的代码中,我们没有指定具体类型,但是跟根据类型推断可知其类型为 List<String>
除了类型的自动推断,还可以限制类型。如下
- 限制类型
1 | // 限制类型 |
Map泛型使用
1 | //创建Map的方式 |
类定义的泛型
如果我们需要定义一个类, 用于存储位置信息Location, 但是并不确定使用者希望使用的是int类型,还是double类型, 甚至是一个字符串, 这个时候如何定义呢?
一种方案是使用Object类型, 但是在之后使用时, 非常不方便
另一种方案就是使用泛型.
Location类的定义: Object方式
1 | main(List<String> args) { |
Location类的定义: 泛型方式
1 | main(List<String> args) { |
如果我们希望类型只能是num类型
1 | main(List<String> args) { |
泛型方法的定义
- 之前,Dart仅仅在类中支持泛型。后来在方法和函数中使用泛型的类型参数。
1 | main(List<String> args) { |