Flutter - Dart - 泛型、base64编码解码、重写运算符

825 阅读1分钟

编译环境: 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);
  }
}