Menu
Coddy logo textTech

Consultare le mappe in modo sicuro

Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 2 di 63.

map[key] restituisce un valore nullable perché la chiave potrebbe essere assente. Usa l’operatore Elvis come valore di ripiego. Uno zero memorizzato è diverso da un valore mancante. L’accesso in sola lettura non implica un’immutabilità profonda.

Dentro main:

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

La chiave book è assente, quindi il risultato null seleziona il valore di ripiego.

Una chiave mancante restituisce null; il valore di ripiego Elvis viene usato solo per null.

challenge icon

Sfida

Medio

Completa lookupStock con i parametri stock: Map<String, Int>, key: String. Restituisci la disponibilità per la chiave richiesta, oppure -1 se è assente. I valori della disponibilità sono non negativi.

Salvo che sopra siano indicati limiti più restrittivi, le raccolte contengono al massimo 100 elementi a ogni livello e gli argomenti interi e i valori interi delle raccolte sono compresi tra -1000 e 1000. Il testo fornito per l'analisi può includere rappresentazioni non valide o fuori intervallo, come descritto.

Restituisci un valore di tipo Int. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il suo conteggio, seguito dai suoi elementi, e una mappa inizia con il conteggio delle sue voci, seguito da ciascuna chiave e valore. Le liste annidate ripetono il formato conteggio-e-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un carattere di nuova riga. Le liste usano il formato standard di Kotlin tra parentesi quadre; non stampare etichette aggiuntive.

Provalo tu

fun lookupStock(stock: Map<String, Int>, key: String): Int {
    // Scrivi qui la tua soluzione.
    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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Kotlin