ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 枚举 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); } } ~~~