在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"));
}
通过泛型,我们可以在编写代码时指定类型,从而确保代码的类型安全性,并可以更好地重用代码。