Pelajaran 26
Extension method
Tambah method ke tipe existing tanpa subclass.
Pahami konsepnya
extension pada String: extension StringX on String { String get kapitalAwal => isNotEmpty ? this[0].toUpperCase() + substring(1) : this; } — semua String sekarang punya .kapitalAwal. Bisa juga generic: extension ListNum<T extends num> on List<T>.
Coba contoh kode
extension Kapital on String {
String get kapitalAwal =>
isNotEmpty ? "${this[0].toUpperCase()}${substring(1)}" : this;
int get jumlahKata => trim().split(RegExp(r"s+")).length;
}
void main() {
print("halo dunia".kapitalAwal); // Halo dunia
print("satu dua tiga".jumlahKata); // 3
}Extension Kapital menambah .kapitalAwal dan .jumlahKata ke SEMUA String — tanpa mengubah class String sendiri.
Latihan singkat
Uji: extension pada int → .kuadrat — 7.kuadrat harus `49`.