Menu
CoddyTech

Elvis-Operator

Teil des Abschnitts Grundlagen der Kotlin-Journey von Coddy. Lektion 15 von 93.

Der Safe-Call-Operator eignet sich hervorragend, um Abstürze zu vermeiden, aber manchmal brauchst du statt null einen tatsächlichen Wert. Mit dem Elvis-Operator ?: kannst du einen Standardwert angeben, wenn ein Ausdruck null ist.

Die Syntax ist einfach: Setze ?: nach einem nullable Ausdruck, gefolgt vom Ersatzwert:

fun main() {
    val name: String? = null
    val displayName = name ?: "Guest"
    println(displayName)  // Gibt aus: Guest
}

Wenn die linke Seite nicht null ist, wird dieser Wert verwendet. Wenn sie null ist, wird die rechte Seite zum Ergebnis. Das funktioniert perfekt mit sicheren Aufrufen:

fun main() {
    val text: String? = null
    val length = text?.length ?: 0
    println(length)  // Gibt aus: 0
    
    val greeting: String? = "Hello"
    val greetingLength = greeting?.length ?: 0
    println(greetingLength)  // Gibt aus: 5
}

Der Operator hat seinen Namen, weil ?: von der Seite betrachtet wie Elvis’ Frisur aussieht. Noch wichtiger ist, dass du damit nullable Typen auf elegante Weise in nicht-nullable Werte mit sinnvollen Standardwerten umwandeln kannst.

challenge icon

Aufgabe

Einfach

Ein Paket hat ein optionales Tracking-Label und ein optionales Ziel. Der Startercode stellt beide nullable Werte bereit. Verwende ?:, um "Pending" auszuwählen, wenn das Tracking-Label fehlt, und "Unassigned", wenn das Ziel fehlt. Gib das ausgewählte Label und dann das ausgewählte Ziel in separaten Zeilen aus.

Probier es selbst

fun main() {
    val trackingLabel: String? = null
    val destination: String? = "Harbor"
    // Wähle die beiden Anzeigewerte aus und gib sie aus.
}
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 Grundlagen

Übe selbstständig: Kotlin-Playground