在Dart中,泛型可以讓我們在編寫函數或類時指定一種或多種類型,從而提高代碼的復用性和類型安全性。泛型可以應用在函數、類、接口等各種場景中。
在函數中使用泛型:
T getValue<T>(T value) {
return value;
}
void main() {
String stringValue = getValue<String>("Hello");
int intValue = getValue<int>(10);
}
在類中使用泛型:
class Box<T> {
T value;
Box(this.value);
}
void main() {
Box<String> box1 = Box<String>("Hello");
Box<int> box2 = Box<int>(10);
}
在接口中使用泛型:
abstract class Cache<T> {
T get(String key);
void set(String key, T value);
}
class MemoryCache<T> implements Cache<T> {
Map<String, T> _cache = {};
@override
T get(String key) {
return _cache[key];
}
@override
void set(String key, T value) {
_cache[key] = value;
}
}
void main() {
Cache<String> cache = MemoryCache<String>();
cache.set("key", "value");
print(cache.get("key"));
}
通過泛型,我們可以在編寫代碼時指定類型,從而確保代碼的類型安全性,并可以更好地重用代碼。