Extension Methods trong Dart
🎯 Mục tiêu: Thêm methods cho existing types.
💡 Cú pháp
extension StringExtension on String {
String get reversed => split('').reversed.join();
bool get isEmail => contains('@') && contains('.');
String capitalize() =>
isEmpty ? this : '${this[0].toUpperCase()}${substring(1)}';
}
print("hello".reversed); // olleh
print("[email protected]".isEmail); // true
print("dart".capitalize()); // Dart📝 Extension cho generic types
extension ListExtension<T> on List<T> {
T? get secondOrNull => length > 1 ? this[1] : null;
}
var list = [1, 2, 3];
print(list.secondOrNull); // 2📱 Trong Flutter
extension BuildContextExtension on BuildContext {
double get screenWidth => MediaQuery.of(this).size.width;
void showSnackBar(String message) {
ScaffoldMessenger.of(this).showSnackBar(
SnackBar(content: Text(message)),
);
}
}
// Usage
context.showSnackBar("Hello!");✅ Checklist
-
extension Name on Type { } - Thêm methods, getters, operators
- Generic extensions
Last updated on