Menu
CoddyTech

Pencarian Map yang Aman

Termasuk bagian Logika & Alur dalam perjalanan Kotlin di Coddy. Pelajaran 2 dari 63.

map[key] mengembalikan nilai yang bisa null karena key mungkin tidak ada. Gunakan operator Elvis sebagai nilai pengganti. Nilai nol yang tersimpan berbeda dari nilai yang tidak ada. Akses hanya-baca tidak berarti ketidakberubahan mendalam.

Di dalam main:

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

Kunci book tidak ada, jadi hasil null memilih nilai cadangan.

Kunci yang tidak ditemukan menghasilkan null; fallback Elvis hanya digunakan untuk null.

challenge icon

Tantangan

Sedang

Lengkapi lookupStock dengan parameter stock: Map<String, Int>, key: String. Kembalikan stok untuk key yang diminta, atau -1 jika tidak ditemukan. Nilai stok tidak negatif.

Kecuali batas yang lebih ketat dinyatakan di atas, koleksi berisi paling banyak 100 elemen di setiap tingkat, dan argumen integer serta nilai dalam koleksi integer berada di antara -1000 dan 1000. Teks yang diberikan untuk parsing dapat mencakup representasi yang tidak valid atau di luar rentang seperti yang dijelaskan.

Kembalikan nilai bertipe Int. Pertahankan kode input/output yang disediakan. Kode tersebut membaca argumen skalar satu per baris; list dimulai dengan jumlah elemennya, lalu diikuti elemen-elemennya, dan map dimulai dengan jumlah entri, lalu diikuti setiap key dan value. List bersarang mengulangi format jumlah elemen dan elemen untuk setiap baris. main yang disediakan mencetak nilai kembalian diikuti satu karakter baris baru. List menggunakan format standar Kotlin dengan tanda kurung siku; jangan cetak label tambahan.

Coba sendiri

fun lookupStock(stock: Map<String, Int>, key: String): Int {
    // Tulis solusimu di sini.
    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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika & Alur

Latihan sendiri: Playground Kotlin