← Kembali ke kursus
Pelajaran kursus · Dart
Pelajaran 07

Typedef dan Symbol

Alias tipe untuk fungsi dan koleksi kompleks.

Pahami konsepnya

typedef memberi nama pendek untuk tipe kompleks: typedef IntList = List<int>; mengubah List<int> menjadi IntList yang lebih terbaca. Untuk fungsi: typedef Calculator = int Function(int, int); — signature fungsi jadi tipe first-class.

Symbol (#nama) adalah identifier yang di-minify saat build — jarang ditulis langsung, tapi muncul di reflection (#foo sebagai Mirror). Praktisnya: typedef jauh lebih bergunakan daripada Symbol untuk kode sehari-hari.

Coba contoh kode

typedef IntList = List<int>;
typedef Operasi = int Function(int, int);

int tambah(int a, int b) => a + b;
int kali(int a, int b) => a * b;

void main() {
  IntList angka = [1, 2, 3];
  print(angka);
  Operasi hitung = tambah;
  print(hitung(3, 5));  // 8

  hitung = kali;
  print(hitung(3, 5));  // 15
}

typedef Operasi mendefinisikan signature fungsi (int, int) → int. Variabel hitung bisa menampung fungsi mana pun yang cocok — tambah atau kali.

Latihan singkat

Uji: typedef Kali; fungsi kuadrat(7) — harus `49`.