Menu
Coddy logo textTech

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 einen tatsächlichen Wert anstelle von null. Mit dem Elvis-Operator ?: kannst du einen Standardwert angeben, wenn ein Ausdruck null ist.

Die Syntax ist einfach: Setze ?: nach einem nullbaren 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 er dir eine saubere Möglichkeit bietet, nullable Typen mit sinnvollen Standardwerten in nicht-nullable Werte umzuwandeln.

challenge icon

Aufgabe

Einfach

Ein Paket hat ein optionales Versandetikett und ein optionales Ziel. Der Ausgangscode stellt beide Nullable-Werte bereit. Verwende ?:, um "Pending" auszuwählen, wenn das Versandetikett fehlt, und "Unassigned", wenn das Ziel fehlt. Gib das ausgewählte Etikett und anschließend das ausgewählte Ziel in separaten Zeilen aus.

Probier es selbst

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