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 Methoden nicht direkt aufrufen oder auf Eigenschaften zugreifen: Der Compiler lässt dies nicht zu, weil der Wert null sein könnte. Der Operator für sicheren Aufruf ?. löst dieses Problem elegant.
Anstatt einen normalen Punkt . zu verwenden, verwendest du ?., um sicher auf Mitglieder eines nullbaren 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 einen Absturz zu verursachen. Wenn der Wert vorhanden ist, funktioniert er genau 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.
Aufgabe
EinfachDie folgende nullable Variable wird bereitgestellt:
val message: String? = "Kotlin"Verwende den Safe-Call-Operator, um:
- Die Länge von
messagezu ermitteln und sie auszugeben messagein Großbuchstaben umzuwandeln und das Ergebnis auszugeben
Erstelle anschließend eine weitere nullable Variable:
val empty: String? = nullVerwende den Safe-Call-Operator, um die Länge von empty zu ermitteln und sie auszugeben.
Jedes Ergebnis sollte in einer eigenen Zeile ausgegeben werden. Denke daran: Der Safe-Call-Operator gibt
nullzurück, wenn der Wertnullist.
Probier es selbst
fun main() {
val message: String? = "Kotlin"
// TODO: Verwende den Safe-Call-Operator, um die Länge von message zu holen und sie 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 holen und sie auszugeben
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorErweiterte ZuweisungVergleichsoperatorenRückblick – Einfache Mathematik7Grundlegende Ein-/Ausgabe
println-FunktionString-VorlagenReadLine-EingabeTypkonvertierungWiederholung – Jahre bis zur RenteWiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteBenannte ArgumenteStandardwerteFunktionen mit einem AusdruckRückblick – Sigma-FunktionRückblick – Validierungsfunktion2Variablen
Val vs VarTypinferenzZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Ternär mit If-AusdruckWiederholung – Einfache Logik8Rechner zum Aufteilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion3Nullbarkeit
Was ist Null-Sicherheit?Nullable-TypenOperator für sicheren AufrufElvis-OperatorGrundlagen der FunktionsaufgabeAssertion auf Nicht-NullRückblick – Sicherer Zugriff6Entscheidungen treffen
If-AnweisungIf - ElseIf als AusdruckWhen-AusdruckWhen mit BereichenRückblick - Einfacher Taschenrechner9Schleifen
For-SchleifeWhile-SchleifeDo-While-SchleifeBreakContinueBereiche in SchleifenVerschachtelte SchleifeRückblick – FakultätRückblick – Dynamische EingabeÜbe selbstständig: Kotlin-Playground