Dart語言學習 十四 Dart泛型

2022-02-06 04:04:06 字數 1345 閱讀 5976

什麼是泛型?

通俗理解:泛型就是解決 類 介面 方法的復用性、以及對不特定資料型別的支援(型別校驗)

如下**,只能返回string型別的資料

string getdata(string value)

如下**,同時支援返回 string型別 和int型別 。但是這麼些造成**冗餘
string getdata1(string value)

int getdata2(int

value)

如下**,同時返回 string型別 和number型別,不指定型別可以解決這個問題
getdata(value)

不指定型別放棄了型別檢查。我們現在想實現的是傳入什麼 返回什麼。比如:傳入number 型別必須返回number型別  傳入 string型別必須返回string型別
getdata(t value)

void

main()

集合list 泛型類的用法

案例:把下面類轉換成泛型類,要求list裡面可以增加int型別的資料,也可以增加string型別的資料。但是每次呼叫增加的型別要統一

class printclass

void

printinfo()

}}

void

main()

dart中的泛型介面:

實現資料快取的功能:有檔案快取、和記憶體快取。記憶體快取和檔案快取按照介面約束實現。

1、定義乙個泛型介面 約束實現它的子類必須有getbykey(key) 和 setbykey(key,value)

2、要求setbykey的時候的value的型別和例項化子類的時候指定的型別一致

abstract

class cache

class fliecacheimplements cache

@override

void

setbykey(string key, t value) value=$的資料寫入到了檔案中");

}}class memorycacheimplements cache

@override

void

setbykey(string key, t value) value=$ -寫入到了記憶體中");

}}

void

main());

}

dart學習系列文章:

Dart語言學習 三 Dart數值型

數值型有num,int,double num a 10 a 12.5 print a print a.runtimetype int b 20 b 20.5 print b print b.runtimetype double c 10.5 c 30 print c print c.runtimet...

Dart語言學習 二 Dart的常量和變數

dart是乙個強大的指令碼類語言,可以不預先定義變數型別 自動會型別推導 dart中定義變數可以通過var關鍵字可以通過型別來申明變數 var str this is dart var string str this is dart var int str 123 注意 var 後就不要寫型別,寫了...

dart語言學習(十八) 匿名方法

引數1,引數2,可賦值給變數,通過變數進行呼叫 可在其他方法中直接呼叫或傳遞給其他方法 void main listargs func var func1 str func1 huangxiaoguo 通過 進行呼叫,不推薦使用 匿名方法傳參 var list2 h e l l o print li...