Menu
Coddy logo textTech

Verschachtelte Maps

Teil des Abschnitts Logik & Ablauf der Kotlin-Journey von Coddy. Lektion 9 von 63.

Ein Map-Wert kann selbst eine Map sein. Jede Abfrage kann fehlen, daher kombinierst du einen sicheren Aufruf mit einem abschließenden Fallback. Änderbare Aktualisierungen require Änderbarkeit auf der Ebene, die geändert wird.

Innerhalb von main:

val school = mapOf("Ada" to mapOf("math" to 9))
println(school["Ada"]?.get("art") ?: -1)

Ada ist vorhanden, aber der innere Schlüssel art fehlt, daher wird der Ersatzwert verwendet.

Verwende auf jeder möglicherweise fehlenden Map-Ebene einen sicheren Zugriff.

challenge icon

Aufgabe

Mittel

Vervollständige nestedScore mit den Parametern name: String und subject: String. Verwende die festen Datensätze Ada: math 9, art 7; Bo: math 6. Gib die angeforderte Punktzahl zurück oder -1, wenn der Name oder das Fach nicht vorhanden ist.

Sofern oben keine strengeren Grenzen angegeben sind, enthalten Sammlungen auf jeder Ebene höchstens 100 Elemente, und ganzzahlige Argumente sowie ganzzahlige Sammlungswerte liegen zwischen -1000 und 1000. Für das Parsen bereitgestellter Text kann ungültige oder außerhalb des zulässigen Bereichs liegende Darstellungen enthalten, wie beschrieben.

Gib einen Wert vom Typ Int zurück. Behalte den bereitgestellten Eingabe-/Ausgabecode bei. Er liest skalare Argumente jeweils in einer eigenen Zeile; eine Liste beginnt mit ihrer Anzahl, gefolgt von ihren Elementen, und eine Map beginnt mit ihrer Anzahl von Einträgen, gefolgt von jedem Schlüssel und Wert. Verschachtelte Listen wiederholen das Format Anzahl-und-Elemente für jede Zeile. Das bereitgestellte main gibt den Rückgabewert gefolgt von einem Zeilenumbruch aus. Listen verwenden das standardmäßige eckige Format von Kotlin; gib keine zusätzlichen Bezeichnungen aus.

Probier es selbst

fun nestedScore(name: String, subject: String): Int {
    // Schreibe deine Lösung hier.
    return 0
}
fun main() {
    val name = readLine().orEmpty()
    val subject = readLine().orEmpty()
    println(nestedScore(name, subject))
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Kotlin-Playground