Map operations
- Dart kursu
- Başlangıç
- Ders 62/116
- 5 dk
[] ve .putIfAbsent ile Map yönetimini öğrenirsin.
Map işlemleri
Map'ten değer okumak için köşeli parantez kullanılır: ages['Ayşe'] 'Ayşe' anahtarının değerini verir. Yoksa null döner. Yeni çift eklemek de aynı sözdizimiyle olur: ages['Cem'] = 26;.
putIfAbsent ise yalnızca anahtar yoksa değer koyar: ages.putIfAbsent('Deniz', () => 30);. Anahtar zaten varsa hiçbir şey yapmaz; yoksa verilen fonksiyonu çağırıp sonuçunu saklar.
Çıkarmak için remove, tüm çiftleri görmek için entries kullanılır. length çift sayısını verir. Map anahtarı yoksa [] operatörü null döndüğü için null safety konusunu bir sonraki grupta detaylı göreceksin.
putIfAbsent vs update
putIfAbsent yalnızca anahtar yoksa değer koyar; varsa dokunmaz. update ise var olan değeri değiştirir; anahtar yoksa hata fırlatabilir ya da varsayılan bir değer üretebilir.
Örnek: ages.putIfAbsent('Cem', () => 25); 'Cem' yoksa 25 koyar. ages.update('Ayşe', (v) => v + 1); ise 'Ayşe'nin yaşını bir artırır.
İlk ekleme için putIfAbsent, değişiklik için update tercih edilir. Hangisini kullanacağına görevine göre karar verirsin.
Uygulama Telefon rehberi
Boş bir Map<String, String> oluştur. putIfAbsent ile iki kişinin adını anahtar, telefonunu değer yap. Sonra print ile rehberi yazdır.
Başlangıç kodu
void main() {
var phones = <String, String>{};
// putIfAbsent ile iki kişi ekle
// yazdır
}Örnek çözüm
void main() {
var phones = <String, String>{};
phones.putIfAbsent('Ayşe', () => '555-1000');
phones.putIfAbsent('Mert', () => '555-2000');
print(phones);
}Beklenen çıktı
{Ayşe: 555-1000, Mert: 555-2000}
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 putIfAbsent ne zaman değer koyar?
- Her zaman
- Anahtar varsa
- Hiçbir zaman
- Anahtar yoksa Doğru cevap
Açıklama: putIfAbsent yalnız anahtar Map'te yoksa değer atar.
2 Değer oku
void main() {
var ages = <String, int>{'Ayşe': 28};
print(ages____);
}
void main() {
var ages = <String, int>{'Ayşe': 28};
print(ages['Ayşe']);
}
Açıklama: köşeli parantez anahtarla değeri verir.
3 İşlemleri eşleştir
| Kavram | Anlamı |
|---|---|
[] |
Değer oku/yaz |
putIfAbsent |
Yalnız yoksa koy |
update |
Var olanı değiştir |
remove |
Anahtarı sil |