目錄
為什麼使用泛型?
用於集合型別
限制泛型引數型別
泛型(generics)使用<...>來定義。
按照慣例,dart2中使用e、t、k和v宣告型別變數。比如: list等等。
1. 指定泛型型別,可以是**更安全,更易解讀;
2. 使用泛型還可以避免**重複。
// 官網**
abstract class objectcache
abstract class stringcache
//上面兩個類,使用泛型可以精簡為乙個類
abstract class cache
main(listargs)
泛型可以用於list和map的直接引數化,也可以通過構造函式引數化。
dart2泛型型別被具體化了,這意味著它們在執行時攜帶著自己的型別資訊。
main(listargs) ;
// 使用構造函式引數化
var animallist = list();
var animalmap2 = map();
animallist.addall(['bird', 'dog']);
// 轉換成set時,需要指定型別
var animalset = set.from(animallist);
// 可以直接判定型別
print(animallist is list); // true
}
當實現乙個泛型時,如果需要限制它引數的型別,可以使用extends
關鍵字。
下面是官網例項。
// 限制t必須是somebaseclass或者它的後台
class foo
class extender extends somebaseclass
void main()
Dart基礎 泛型和庫
如果你看過api文件的基本型別陣列和列表,你會發現實際上所有都是泛型,使用泛型可以提高 的可讀性 var names new list names.addall seth kathy lars 檢查模式編譯失敗,生產模式編譯成功 names.add 42 使用泛型的另乙個原因是減少 重複,泛型可以建...
Dart2基礎 八 類和列舉
目錄 類的定義和使用 獲取物件型別 例項變數 建構函式 子類建構函式 重定向建構函式 靜態建構函式 工廠建構函式 例項方法 抽象類和方法 隱式介面 類的繼承 過載運算子 列舉 mixins 類變數和方法 dart2中的類都是繼承於類object。dart2中每乙個類都有有乙個超類 object除外 ...
Dart 中泛型 泛型方法 泛型類 泛型介面
泛型就是解決類 介面 方法的復用性以及對不特定資料的支援 void main 定義乙個泛型方法 t printdata t value running dart users zhoujian dartdemo demo.dart 2zhoujian done exited with code 0 i...