dart 泛型

函数名和类名后面的泛型来控制整体的泛型
定义了泛型可以不指定泛型的类型,这样就变成了可以传递任意值
泛型类/接口才能继承/实现泛型类/接口
泛型的T字母可以是任意字母

方法:
		T 函数名<T>(T 参数)
		{	
				T f()
				{
					..	
				}
		}
		调用:函数名<指定的类型>(xx);
		
类:
	
	class 类名<T>{
		T f(){...}
	}
	接口/抽象函数:
	abstract class 接口名/抽象函数名<T>{
		...
	}
	调用:类名 x =new 类型<指定类型>();

代码示例:


void main(){
  var map =new Map();
  map['x']=1;

  List a=[1,2,3];

  //设置返回类型和传入类型校验
  T get<T>(T value){
    print(value);
  }

  //只对传入类型校验
  get2<T>(T value)
  {
    print(value);
  }
  //函数名后的泛型,将控制整个函数的泛型
  get3<T>(int value)
  {
    List list=new List<T>();
    list.add(value);
  }

  List list=new List<String>();
  get<String>('123');
  //不指定类型可以当普通方法用
  get(2);


  P p =new P<String>();
  p.add('2');
}

class P<T>{
  List list=new List<T>();
  void add(T value)
  {
    this.list.add(value);
  }
  void prin()
  {
    for(var i in this.list)
    {
      print(i);
    }
  }
}

class K<T> extends P<T>{
  
}


发布了670 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43294560/article/details/105419256
今日推荐