Menu
CoddyTech

Operator für sicheren Aufruf

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

Wenn du eine nullable Variable hast, kannst du nicht direkt Methoden aufrufen oder auf Eigenschaften zugreifen: Der Compiler lässt das nicht zu, weil der Wert null sein könnte. Der Safe-Call-Operator ?. löst dieses Problem auf elegante Weise.

Statt eines regulären Punkts . verwendest du ?., um sicher auf Mitglieder eines nullable Typs zuzugreifen:

fun main() {
    val name: String? = "Alice"
    val length = name?.length  // Gibt 5 zurück
    println(length)
    
    val nullName: String? = null
    val nullLength = nullName?.length  // Gibt null zurück (kein Absturz!)
    println(nullLength)
}

Der Safe-Call-Operator prüft, ob der Wert null ist, bevor auf die Eigenschaft oder Methode zugegriffen wird. Wenn der Wert null ist, gibt der gesamte Ausdruck null zurück, anstatt abzustürzen. Wenn der Wert vorhanden ist, funktioniert er wie ein normaler Aufruf.

Du kannst auch mehrere sichere Aufrufe miteinander verketten:

fun main() {
    val text: String? = "Hello"
    val result = text?.uppercase()?.length
    println(result)  // Gibt aus: 5
}

Wenn ein Teil der Kette null ist, gibt der gesamte Ausdruck sicher null zurück, ohne einen Fehler auszulösen.

challenge icon

Aufgabe

Einfach

Dir wird die folgende nullable Variable bereitgestellt:

val message: String? = "Kotlin"

Verwende den Safe-Call-Operator, um:

  1. Die Länge von message zu ermitteln und auszugeben
  2. message in Großbuchstaben umzuwandeln und das Ergebnis auszugeben

Erstelle dann eine weitere nullable Variable:

val empty: String? = null

Verwende den Safe-Call-Operator, um die Länge von empty zu ermitteln und auszugeben.

Jedes Ergebnis sollte in einer separaten Zeile ausgegeben werden. Denk daran: Der Safe-Call-Operator gibt null zurück, wenn der Wert null ist.

Probier es selbst

fun main() {
    val message: String? = "Kotlin"
    
    // TODO: Verwende den Safe-Call-Operator, um die Länge von message zu ermitteln und auszugeben
    
    // TODO: Verwende den Safe-Call-Operator, um message in Großbuchstaben umzuwandeln und auszugeben
    
    val empty: String? = null
    
    // TODO: Verwende den Safe-Call-Operator, um die Länge von empty zu ermitteln und auszugeben
}
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