Dart 泛型
泛型方法 泛型类 泛型接口
泛型的理解:泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验)
场景,如果我们不指定类型传入参数,返回值的类型就得是这个类型:
// 1. 对传入参数和返回值 进行校验
T getData<T>(T value){
return value;
}
// 2. 对传入参数进行校验 和 返回值不校验
getData<T>(T value){
return value;
}
void main(){
getData<String>('hello'); // hello
getData<int>(123); // 123
}
场景,列表数组类型
List list = new List<int>();
list.add(123); // ok
list.add('hello'); // error
场景,自定义一个泛型类
class PrintClass<T>{
List list = new List<T>();
void add(T value){
this.list.add(value);
}
void printInfo(){
for(var i=0;i<this.list.length;i++){
print(this.list[i]);
}
}
}
void main(){
// normal
PrintClass p = new PrintClass();
p.add(123);
p.add('xxx'); // ok
print(p.list);
// T int class
PrintClass p1 = new PrintClass<int>();
p1.add(123);
p1.add('xxx'); //