Dart 学习笔记3

学习内容:

关于Dart中的泛型–泛型方法,泛型类,泛型接口
1.泛型:解决类、方法、接口的复用性,以及对不特定数据类型的支持(数据校验)
2.自定义库,系统库,第三方库


  1. 泛型方法
// 可以将前面的T去掉,则不控制返回值的类型
T getInfo<T>(T value){
	return value;
}

void main(){
    // 传的参数必须为String类型
    // 可以在这里动态指定传入参数的类型以及返回的类型
	print(getInfo<String>('110303'));
}
  1. 泛型类
    List 是一个泛型的类,我们可以直接在调用时使用。
// 在这里指定了List里面只能添加String类型的数据
List list = new List<String>;
list.add('hello');
print(list);

下面自定义一个泛型类:

// 使用普通方法定义
class activeDemo{
	List list = new List<int>();
	void add(int value){
		this.list.add(value);
	}
	void getInfo(){
		for(var i=0;i<this.list.length;i++){
			print(this.list[i]);
		}
	}
}

// 使用泛型类
class activeDemo1<T>{
	List list = new List<T>();
	void add(T value){
		this.list.add(value);
	}
	void getInfo(){
		for(var i=0;i<this.list.length;i++){
			print(this.list[i]);
		}
	}
}

void main(){
	// 不指定类型
	activeDemo1 a = new activeDemo1();
	// 指定为string类型
	activeDemo1 a1 = new activeDemo1<String>();
	a1.add('hello');
	a1.getInfo();
}
  1. 泛型接口
abstract class Animal<T> {
  getNume(int num);
  void setNum(int num, T value);
}

class Cat<T> implements Animal<T> {
  @override
  getNume(int num) {
    return null;
  }

  @override
  void setNum(int num, T value) {
    print("这里有一只小猫 编号为${num},信息为${value}");
  }
}

class Dog<T> implements Animal<T> {
  @override
  getNume(int num) {
    return null;
  }

  @override
  void setNum(int num, T value) {
    print("这里有一只小狗 编号为${num},信息为${value}");
  }
}

void main() {
  Cat c = new Cat<String>();
  c.setNum(11, "喵喵");
  Dog d = new Dog<Map>();
  d.setNum(12, {"品种": "Dog", "名字": "小白"});
}
  1. 库的使用
import "dart:math";
main(){
	max(11,12);
}

使用第三方库需要引入,在pubspec.yaml文件中,添加第三方库的依赖,然后再在根目录下运行pub get获取第三方库,然后按照文档中的demo进行使用。
第三方库地址:https://pub.dev/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值