Pelajaran 19
Generics
List<T>, Map<K,V>, method generics, bounded.
Pahami konsepnya
Generics memastikan type safety: List<String> hanya menerima String. Method generics: T pertama<T>(List<T> list). Bounded: T extends num membatasi ke num atau turunannya.
Coba contoh kode
T pertama<T>(List<T> list) => list.first;
double rata<T extends num>(List<T> d) => d.reduce((a, b) => a + b as T) / d.length;
void main() {
print(pertama([1, 2, 3])); // 1 (int)
print(pertama(["a", "b"])); // a (String)
}pertama<T> menerima List<int> ATAU List<String> — T menyesuaikan tipenya. Bounded T extends num membatasi ke angka.
Latihan singkat
Uji: terbesar<T extends num>([3,8,1,9,4]) — harus `9`.