Menu
Coddy logo textTech

Güvenli Map Aramaları

Coddy'nin Kotlin Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 2 / 63.

map[key], anahtar mevcut olmayabileceği için null değer döndürür. Bir geri dönüş değeri için Elvis operatörünü kullanın. Saklanan sıfır, eksik bir değerden farklıdır. Salt okunur erişim, derin değişmezlik anlamına gelmez.

main içinde:

val stock = mapOf("pen" to 0)
println(stock["book"] ?: -1)

Kitap anahtarı mevcut değil, bu nedenle null sonucu varsayılan değeri seçer.

Eksik bir anahtar null üretir; Elvis geri dönüşü yalnızca null için kullanılır.

challenge icon

Görev

Orta

stock: Map<String, Int> ve key: String parametreleriyle lookupStock işlevini tamamlayın. İstenen anahtar için stok değerini, anahtar yoksa -1 değerini döndürün. Stok değerleri negatif değildir.

Yukarıda daha sıkı sınırlar belirtilmediği sürece, koleksiyonlar her düzeyde en fazla 100 öğe içerir ve tamsayı bağımsız değişkenleri ile tamsayı koleksiyon değerleri -1000 ile 1000 arasındadır. Ayrıştırma için sağlanan metin, açıklandığı üzere geçersiz veya aralık dışı gösterimler içerebilir.

Int türünde bir değer döndürün. Sağlanan giriş/çıkış kodunu koruyun. Kod, skaler bağımsız değişkenleri satır başına bir tane okuyabilir; bir liste, ardından öğeleri gelen sayısıyla başlar ve bir eşlem, ardından her anahtar ve değer gelen giriş sayısıyla başlar. İç içe listeler, her satır için sayı ve öğeler biçimini tekrarlar. Sağlanan main, dönüş değerini ve ardından bir satır sonunu yazdırır. Listeler, Kotlin'in standart köşeli parantezli biçimini kullanır; ek etiket yazdırmayın.

Kendin dene

fun lookupStock(stock: Map<String, Int>, key: String): Int {
    // Çözümünüzü buraya yazın.
    return 0
}
fun main() {
    val stockCount = readln().toInt()
    val stock = mutableMapOf<String, Int>()
    for (i0 in 0 until stockCount) {
        val stockKey = readln()
        val stockValue = readln().toInt()
        stock[stockKey] = stockValue
    }
    val key = readLine().orEmpty()
    println(lookupStock(stock, key))
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Kotlin playground