Flutter -- 12.枚举&泛型

2021-11-17  本文已影响0人  MissStitch丶

1.枚举

/*
* 1.枚举的index从0开始,依次递增
* 2.枚举不能赋值
* 3.不能添加方法
* */
enum Direction {
  top,
  left,
  bottom,
  right
}

testEnum() {
  print(Direction.top.index); //0
  print(Direction.left.index); //1
  print(Direction.bottom.index); //2
  print(Direction.right.index); //3
}

2.泛型

1.类的泛型
testGeneric() {
  Generic generic = Generic<int>(data: 10);
  generic.showData(); //10
}

class Generic<T>{
  T? data;
  Generic({this.data});
  showData() {
    print(data);
  }
}
2.方法的泛型
testGeneric() {
  //创建时指定了类型
  // Generic generic = Generic<int>();
  // generic.add('1', 2); //2 //加不进去'1', 因为'1'不是int类型
  // generic.add(3, 4); //2, 3, 4 //加进去了3,因为R与T是一个类型
  // generic.add('1', '2'); //由于上面指定了为int, 这里不能传入String,会报错

  //创建时不知道类型
  Generic generic1 = Generic();
  generic1.add('1', 2); //1, 2
  generic1.add(3, 4); // 1, 2, 3, 4
  //当类定义时,没有指定泛型时,element is T这个会为true,
}

class Generic<T>{
  final List<T> list = [];

  add<R>(R element, T value) {
    if (element is T) {
      list.add(element);
    }
    list.add(value);
    list.forEach(print);
  }

}
上一篇下一篇

猜你喜欢

热点阅读