Kotlin Academy · Lektion

Sichere Aufrufe und Elvis

Operatoren ?. und ?:

Lektion 2 von 413 Schritte

Sichere Aufrufe und Elvis ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Sauber mit Nullable-Werten arbeiten

Überall if (x != null) zu schreiben, wird schnell ausführlich. Kotlin bietet zwei prägnante Operatoren für nullable Werte:

  • den Safe-Call ?.
  • den Elvis-Operator ?:

Der Safe-Call-Operator

Der Safe-Call ?. ruft eine Methode nur auf oder liest eine Property nur aus, wenn der Wert nicht null ist. Andernfalls ergibt der gesamte Ausdruck null.

Kein Absturz, keine explizite Prüfung.

fun main() {
    val name: String? = "Kotlin"
    println(name?.length)
}

Safe-Call bei Null

Wenn der Empfänger null ist, bricht der Safe-Call die Auswertung ab und gibt statt einer Exception null zurück.

Das ist der entscheidende Unterschied zu einem normalen Aufruf mit dem Punktoperator.

fun main() {
    val name: String? = null
    println(name?.length)
}

Safe-Calls verketten

Safe-Calls können verkettet werden. Wenn ein beliebiges Glied der Kette null ist, wird das gesamte Ergebnis zu null.

Dadurch werden tief verschachtelte Nullprüfungen vermieden.

fun main() {
    val text: String? = "hello world"
    val result = text?.uppercase()?.substring(0, 5)
    println(result)
}

Der Elvis-Operator

Der Elvis-Operator ?: liefert einen Ersatzwert, wenn die linke Seite null ist.

Lesen Sie ihn als: Verwenden Sie den linken Wert oder andernfalls den rechten.

fun main() {
    val name: String? = null
    val display = name ?: "Guest"
    println(display)
}

Elvis mit einem tatsächlichen Wert

Wenn die linke Seite nicht null ist, gibt der Elvis-Operator sie einfach zurück und ignoriert den Ersatzwert.

Der Ersatzwert wird nur verwendet, wenn der Wert fehlt.

fun main() {
    val name: String? = "Sam"
    val display = name ?: "Guest"
    println(display)
}

Safe-Call und Elvis kombinieren

Diese Operatoren werden häufig zusammen verwendet. Ein Safe-Call kann null ergeben, und Elvis liefert einen Standardwert.

Dies ist eines der häufigsten Kotlin-Idiome.

fun main() {
    val name: String? = null
    val length = name?.length ?: 0
    println(length)
}

Elvis für eine vorzeitige Rückgabe

Die rechte Seite von Elvis kann return oder throw sein. Das ist eine saubere Möglichkeit, bei einem fehlenden Wert vorzeitig zu beenden.

Wenn id null ist, gibt die Funktion sofort zurück.

fun process(id: String?) {
    val safeId = id ?: return
    println("Processing " + safeId)
}

fun main() {
    process("A-100")
    process(null)
    println("done")
}

Safe-Call mit let

Kombinieren Sie ?. mit let, um einen Block nur auszuführen, wenn der Wert nicht null ist.

Innerhalb des Blocks verweist it auf den Nicht-null-Wert.

fun main() {
    val name: String? = "Kotlin"
    name?.let {
        println("Length is " + it.length)
    }
}

Standardwerte für Zahlen mit Elvis

Elvis ist praktisch, um nullable Zahlen vor arithmetischen Operationen in sichere Standardwerte umzuwandeln.

Hier wird eine null count zu 0, sodass die Berechnung immer funktioniert.

fun main() {
    val count: Int? = null
    val total = (count ?: 0) + 5
    println(total)
}

Alles zusammenführen

Zusammen ersetzen diese Operatoren umfangreiche Nullprüfungen:

  • ?. ruft nur auf, wenn der Wert nicht null ist
  • ?: liefert bei null einen Ersatzwert
  • Verkettungen und let machen komplexe Abläufe prägnant
fun main() {
    val input: String? = null
    val name = input?.trim()?.uppercase() ?: "UNKNOWN"
    println(name)
}

Kurzer Test

Überprüfen Sie Ihr Verständnis von Safe Calls und dem Elvis-Operator.

Zusammenfassung

Sie haben die beiden wichtigsten nullable Operatoren kennengelernt:

  • Safe Call ?. gibt statt eines Absturzes null zurück
  • Elvis-Operator ?: liefert einen Ersatzwert
  • Sie lassen sich problemlos mit let und vorzeitigen Rückgaben kombinieren

Als Nächstes sehen Sie den Operator !! und erfahren, warum Sie ihn mit Bedacht einsetzen sollten.

Kostenlos starten

Lerne Kotlin mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
51
Lektionen
203

Häufig gestellte Fragen

Ist die Lektion „Sichere Aufrufe und Elvis“ kostenlos?

Ja — der vollständige Text von „Sichere Aufrufe und Elvis“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Sichere Aufrufe und Elvis“?

Operatoren ?. und ?: Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Sichere Aufrufe und Elvis“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Nullable- und Non-Null-Typen
  2. Sichere Aufrufe und Elvis
  3. Der Operator !!
  4. Plattformtypen
← Zurück zu Kotlin Academy