← Kembali ke kursus
Pelajaran kursus · Dart
Pelajaran 29

Callable object

Class sebagai fungsi via method call().

Pahami konsepnya

Class yang punya method call() bisa dipanggil seperti fungsi: class Kali { int call(int a, int b) => a * b; } lalu var k = Kali(); k(3, 5) menghasilkan 15. Ini menggantikan fungsi murni untuk kasus yang butuh state.

Coba contoh kode

class Diskon {
  double persen;
  Diskon(this.persen);

  double call(double harga) => harga * (1 - persen / 100);
}

void main() {
  var diskon20 = Diskon(20);
  print(diskon20(100000));  // 80000
}

diskon20(100000) memanggil call() — objek berperilaku persis seperti fungsi. persen tersimpan sebagai state.

Latihan singkat

Uji: callable Diskon(50) → d(200) harus `100`.