编译环境: VSCode版本: 1.46.0 ,Dart版本: v3.11.0,Flutter版本: v3.11.0
泛型
泛型的作用
- 规范数据类型,如指定 List 、Map的具体数据类型
- 作为占位符,增加通用性
- 泛型的生命周期:在调试模式下生效,在生产模式下不会检查泛型,目的是为了在调试模式下提前发现问题 new List(); new Map<String,String>();
class IntSum {
int sum(int a, int b){
return a+b;
}
}
class StringSum {
String sum(String a, String b){
return a+b;
}
}
class Sum<T> {
T sum(T t1,T t2){
return t1+t2;
}
}
base64的编码与解码
String str = 'encode str';
//base64编码
List<int> bytes = utf8.encode(str);
String encodeStr = base64Encode(bytes);
print(encodeStr); //ZW5jb2RlIHN0cg==
//base64解码
List<int>bytes2 = base64Decode(encodeStr);
String decodeStr = String.fromCharCodes(bytes2);
print(decodeStr); //encode str
重写运算符
- 通常加减乘除都是对数学的运算,通常都是针对基本数据类型的。
- Dart中重写运算符,可以使类之间,通过制定运算算法,进行逻辑操作
Test1 t1 = Test1(1,2);
Test1 t2 = Test1(3,4);
Test1 t3 = t1 +t2;
print('t3.a = ${t3.a} t3.b = ${t3.b}'); //t3.a = 4 t3.b = 6
class Test1{
int a;
int b;
Test1(this.a,this.b);
Test1 operator +(Test1 t){
return Test1(a+t.a,b+t.b);
}
}