← Kembali ke kursus
Pelajaran kursus · Dart
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`.