← Kembali ke kursus
Pelajaran kursus · Dart
Pelajaran 15

Closure dan higher-order

Anonymous, closure, fungsi sebagai argumen.

Pahami konsepnya

Fungsi anonymous: (a, b) => a + b — bisa disimpan ke variabel atau dikirim sebagai argumen. Closure: fungsi yang menangkap variabel dari scope luar. Higher-order: fungsi yang menerima/mengembalikan fungsi.

Coba contoh kode

Function buatPenghitung() {
  int hitung = 0;
  return () => ++hitung;
}

void main() {
  var next = buatPenghitung();
  print(next());  // 1
  print(next());  // 2
  print(next());  // 3

  var kuadrat = (int n) => n * n;
  print(kuadrat(7));  // 49
}

hitung tertutup dalam closure — hanya fungsi next yang bisa mengaksesnya. Anonymous (int n) => n * n disimpan ke variabel kuadrat.

Latihan singkat

Uji: closure mulai 10 — next() harus `11`.