Materi
Fungsi Dart menulis tipe nilai baliknya di depan nama. Fungsi yang isinya satu ekspresi boleh disingkat dengan =>, yang artinya sama dengan { return ekspresi; }. Parameter di dalam kurung kurawal adalah parameter bernama: dipanggil dengan namanya, boleh di urutan mana pun, dan bersifat opsional kecuali ditandai required. Parameter opsional diberi nilai bawaan atau bertipe nullable. Konstruktor widget Flutter memakai parameter bernama hampir di mana-mana, misalnya Padding(padding: ..., child: ...).
int diskon(int harga, {int persen = 10}) => harga * persen ~/ 100;
void main() {
final kota = ['Medan', 'Padang', 'Bogor'];
final stok = {'beras': 20, 'gula': 0};
print(diskon(50000)); // 5000
print(diskon(50000, persen: 25)); // 12500
print(kota.map((k) => k.toUpperCase()).toList()); // [MEDAN, PADANG, BOGOR]
print(stok['minyak']); // null: kuncinya tidak ada
print(stok['minyak'] ?? 0); // 0
}List adalah daftar berurutan, Map memetakan kunci ke nilai, dan Set menyimpan nilai tanpa kembar. Membaca kunci yang tidak ada di Map menghasilkan null, bukan galat. where menyaring dan map mengubah setiap elemen, tetapi keduanya mengembalikan Iterable yang malas: fungsinya baru dijalankan saat elemen dibaca, dan saat dicetak isinya diapit kurung biasa. Panggil toList() bila butuh List. Di dalam literal list, ...daftar menyisipkan isi list lain, if menyisipkan elemen bila syaratnya benar, dan for menyisipkan elemen berulang. Pola ini dipakai untuk menyusun children sebuah Column.