Skip to content

3.泛型

泛型是Dart語言另一十分強大的特性,泛型使得Dart中的類型更加動態,並且大大提高了代碼的重用率。

泛型 = 通用類型

main(){
    List<String> list = ["1", "2", "3"];
    Map<int, String> map = {1:"1", 2:"2", 3:"3"};
}

尖括號中的類型就是泛型。
請觀察以下程式碼:
main(){
    var data1 = MyClassInt(1);
    var data2 = MyClassString("哈");
    print(data1.data.runtimeType);
    print(data2.data.runtimeType);
}
class MyClassInt{
    int data;
    MyClassInt(this.data);
}
class MyClassString{
    MyClassString(this.data);
    String data;
}

上面的程式碼定義了MyClassInt與MyClassString兩個class,這兩個類的差別在於存儲資料的類型不同,我們可以將上述內容重寫成:
main(){
    var data1 = MyClass(1);
    var data2 = MyClass("哈");
    print(data1.data.runtimeType);
    print(data2.data.runtimeType);
    print(data1);
    print(data2);
}
class MyClass<T>{
    T data;
    MyClass(this.data);
}

請仔細觀察上述程式碼中的,T只是一個標識符,用來作為泛型進行佔位,實際類型會在運行時確定。


Last update : 13 novembre 2024
Created : 13 novembre 2024

Comments

Comments