dart语法7-泛型

2020-05-16  本文已影响0人  jxtx

dart语法1
dart语法2-内置类型
dart语法3-函数
dart语法4-操作符
dart语法5-异常
dart语法6-类
dart语法7-泛型
dart语法8-库
dart语法9-异步
dart语法10-生成器
dart语法11

泛型

泛型函数

1.Dart1.21开始可以使用泛型函数。
2.泛型函数可以在以下几个地方使用类型参数:
<1> 函数的返回值类型。
<2> 参数的类型。
<3> 局部变量的类型。

main() {
  K addCache<K, V>(K key, V value) {
    K temp = key;
    print('${key}: ${value}');
    return temp;
  }
  var key = addCache('dongnao', 'damon');
  print(key);
}

构造函数泛型

要在使用构造函数时指定一个或多个类型,可将类型放在类名称后面的尖括号<...>中。

main() {
  var p = Phone<String>('123456');
  print(p.mobileNumber);
}

class Phone<T> {
  final T mobileNumber;
  Phone(this.mobileNumber);
}

泛型限制

实现泛型类型时,您可能希望限制其参数的类型,可以在<>里面使用extends。

main() {
  var footMassage = FootMassage();
  var m = Massage<FootMassage>(footMassage);
  m.massage.doMassage();
}

class Massage<T extends FootMassage > {
  final T massage;
  Massage(this.massage);
}

class FootMassage {
  void doMassage() {
    print('脚底按摩');
  }
}

与java区别

在Java中,可以测试对象是否为List,但无法测试它是否是List<String>。

var names = List<String>();
print(names is List<String>);//true
print(names.runtimeType); // List<String>
上一篇下一篇

猜你喜欢

热点阅读