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`.