Nullable-Typen
Teil des Abschnitts Grundlagen der Kotlin-Journey von Coddy. Lektion 13 von 93.
Manchmal benötigst du tatsächlich eine Variable, die „nichts“ enthalten kann. Beispielsweise existiert der zweite Vorname eines Benutzers möglicherweise nicht, oder eine Suche liefert keine Ergebnisse. Kotlin ermöglicht dies durch nullable Typen.
Um einen Typ nullable zu machen, füge ein ? nach dem Typnamen hinzu:
fun main() {
var middleName: String? = "Marie"
middleName = null // Das ist jetzt erlaubt!
val age: Int? = null // Kann einen Int oder null halten
}Das ? teilt Kotlin mit: „Diese Variable könnte null sein, gehe also vorsichtig damit um.“ Ohne das ? ist der Typ nicht-nullbar und kann niemals null enthalten.
Wichtig: Nullable und nicht-nullable Typen sind unterschiedlich. Du kannst einer nicht-nullable Variablen nicht direkt einen nullable Wert zuweisen:
fun main() {
val nullableName: String? = "Alice"
val regularName: String = nullableName // Fehler!
}Diese Unterscheidung ist beabsichtigt. Sie zwingt dich dazu, die Möglichkeit von null zu behandeln, bevor du den Wert verwendest. In den kommenden Lektionen lernst du die sicheren Möglichkeiten kennen, die Kotlin für die Arbeit mit nullbaren Werten bietet.
Aufgabe
EinfachDeklariere die folgenden nullable Variablen:
- Eine nullable
String-Variable namensnicknamemit dem Wert"Shadow" - Eine nullable
Int-Variable namensagemit dem Wertnull - Eine nullable
Double-Variable namensbalancemit dem Wert99.5
Gib anschließend alle drei Werte mithilfe von println() in separaten Zeilen aus.
Denke daran, nach dem Typnamen
?zu verwenden, damit er nullable wird. Beim Ausgeben einesnull-Werts wird das Wortnullangezeigt.
Probier es selbst
fun main() {
// TODO: Deklariere die folgenden nullbaren Variablen:
// 1. Ein nullbarer String namens 'nickname' mit dem Wert "Shadow"
// 2. Ein nullbarer Int namens 'age' mit dem Wert null
// 3. Ein nullbarer Double namens 'balance' mit dem Wert 99.5
// Dann gib alle drei Werte in separaten Zeilen aus
}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