枚举
- 枚举是一种有穷序列集的数据类型
- 使用关键字enum定义一个枚举
- 枚举常用于代替常量,控制语句等
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枚举特性
- index从0开始,一次累加
- 不能指定原始值
- 不能添加方法
var currentSeason = Season.summer;
print(currentSeason.index);
错误
enum Season = {
spring = 10; //错误
}
泛型
- Dart中的类型是可选的(dynamic),可使用泛型限定类型。
- 使用泛型能够有效的减少代码重复
void testDart(){
var list = new List();
list.add(1);
list.add('1');
var list1 = new List<String>();
list1.add('1');
}
泛型的使用
- 类的泛型
- 方法的泛型
类上使用泛型
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);
}
}