Extension Methods
🎯 Mục tiêu: Thêm methods cho existing types.
💡 Cú pháp
Phần tiêu đề “💡 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); // ollehprint("dart".capitalize()); // Dart📝 Extension cho generic types
Phần tiêu đề “📝 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
Phần tiêu đề “📱 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)), ); }}
// Usagecontext.showSnackBar("Hello!");✅ Checklist
Phần tiêu đề “✅ Checklist”-
extension Name on Type { } - Thêm methods, getters, operators
- Generic extensions