flutter 枚举&类型

枚举

  1. 枚举是一种有穷序列集的数据类型
  2. 使用关键字enum定义一个枚举
  3. 枚举常用于代替常量,控制语句等
void testDart(){
  var currentSeason = Season.summer;
  switch (currentSeason) {
    case Season.spring:
      print('1-3月');
      break;
    case Season.summer:
      print('4-6月');
      break;
    case Season.autumn:
      print('7-9月');
      break;
    case Season.winter:
      print('10-12月');
      break;
  }
}
enum Season {
  spring,
  summer,
  autumn,
  winter
}

定义常量需要四个,而用枚举一个就行(Javascript中对象常量的属性是可以修改的)

Dart枚举特性

  1. index从0开始,一次累加
  2. 不能指定原始值
  3. 不能添加方法
var currentSeason = Season.summer;
  print(currentSeason.index);
错误
enum Season = {
    spring = 10; //错误
}

泛型

  1. Dart中的类型是可选的(dynamic),可使用泛型限定类型
  2. 使用泛型能够有效的减少代码重复
void testDart(){
  var list = new List();
  list.add(1);
  list.add('1');

  var list1 = new List<String>();
  list1.add('1');
}

泛型的使用

  1. 类的泛型
  2. 方法的泛型
    类上使用泛型
void testDart(){
  var utils = new Utils<String>();
  utils.put('xxxx');
  var utils1 = new Utils<int>();
  utils1.put(11);

}
class Utils<T>{
  T element;
  String elementStr;
  void put(T element){
    this.element = element;
  }
}

方法使用泛型

void testDart(){
  var utils = new Utils();
  utils.put<String>('11');
}
class Utils{
  String elementStr;
  void put<T>(T element){
    print(element);
  }
}