Map iteration
- Dart kursu
- Başlangıç
- Ders 63/116
- 5 dk
for-in ve forEach ile Map gezinmayı öğrenirsin.
Map gezinme
Map'in her çiftine ulaşmak için birkaç yol var. İlki forEach: ages.forEach((k, v) => print('$k: $v'));. Bu, anahtar ve değeri sırayla verir.
İkincisi for-in ile entries: for (var e in ages.entries) { print(e.key); }. Burada her e bir MapEntry'dir ve .key ile .value alanları vardır.
Yalnızca anahtarları ya da değerleri gezmek istersen ages.keys veya ages.values kullanılır. Map ekleme sırasını korur; bu yüzden gezinme sırası öngörülebilirdir.
entries ve keys
entries her çifti bir MapEntry olarak verir; .key ve .value alanlarıyla ayrı ayrı erişilir. keys yalnızca anahtarları, values yalnızca değerleri döndürür.
Örnek: for (var k in ages.keys) print(k); her anahtarı alt alta yazar. for (var v in ages.values) print(v); ise değerleri yazar.
İşin sırası önemli olduğunda entries daha kullanışlıdır; yalnızca bir tarafa ilgi duyuyorsan keys veya values kısa yoldur.
Uygulama Yaşları yazdır
Bir Map<String, int> oluştur; içine iki kişi ekle. forEach ile her çifti $anahtar: $değer biçiminde print ile yazdır.
Başlangıç kodu
void main() {
var ages = <String, int>{};
// iki çift ekle
// forEach ile yazdır
}Örnek çözüm
void main() {
var ages = <String, int>{};
ages['Ayşe'] = 28;
ages['Mert'] = 31;
ages.forEach((k, v) => print('$k: $v'));
}Beklenen çıktı
Ayşe: 28 Mert: 31
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Gezinme yollarını eşleştir
| Kavram | Anlamı |
|---|---|
forEach |
Her çift için callback |
entries |
MapEntry listesi |
keys |
Yalnız anahtarlar |
values |
Yalnız değerler |
2 forEach imzası?
- (k, v) => ... Doğru cevap
- (k) => ...
- (v) => ...
- (e) => ...
Açıklama: Map.forEach iki parametre alır: anahtar ve değer.
3 for-in döngüsü
void main() {
var ages = <String, int>{'Ayşe': 28};
for (var e in ages.____) {
print(e.key);
}
}
void main() {
var ages = <String, int>{'Ayşe': 28};
for (var e in ages.entries) {
print(e.key);
}
}
Açıklama: entries her çifti MapEntry olarak verir.