Was ist Null-Sicherheit?
Teil des Abschnitts Grundlagen der Kotlin-Journey von Coddy. Lektion 12 von 93.
In vielen Programmiersprachen besteht einer der häufigsten Fehler darin, auf etwas zuzugreifen, das nicht existiert: einen null-Wert. Das passiert, wenn eine Variable „nichts“ statt tatsächlicher Daten enthält.
Stell dir vor, du fragst nach dem Namen eines Benutzers, aber er hat keinen angegeben. Wenn dein Code versucht, diesen leeren Namen zu verwenden, ohne vorher eine Prüfung durchzuführen, stürzt dein Programm ab. Diese Art von Fehler ist so häufig, dass sie als „Milliarden-Dollar-Fehler“ bezeichnet wurde.
Kotlins Lösung: Null-Sicherheit
Kotlin wurde entwickelt, um diese Abstürze zu verhindern. Standardmäßig können Variablen in Kotlin keine Nullwerte enthalten:
fun main() {
var name: String = "Alice"
name = null // Fehler! Lässt sich nicht kompilieren
}Der Compiler erkennt dieses Problem, bevor dein Code überhaupt ausgeführt wird. Das macht Kotlin „null-sicher“: Die Sprache selbst verhindert, dass du versehentlich null verwendest, wo es nicht vorgesehen ist.
In den kommenden Lektionen lernst du, wie Kotlin es dir ermöglicht, mit Werten zu arbeiten, die möglicherweise null sind, wenn du sie tatsächlich benötigst, und dabei deinen Code weiterhin vor Abstürzen schützt.
Aufgabe
EinfachDeklariere zwei nicht-nullbare Variablen, um Kotlins Nullsicherheit zu demonstrieren:
- Eine
String-Variable namensusernamemit dem Wert"Kotlin" - Eine
Int-Variable namensscoremit dem Wert100
Gib dann beide Werte mit println() in separaten Zeilen aus.
Denk daran: In Kotlin können reguläre (nicht-nullbare) Typen keine
null-Werte enthalten. Der Compiler stellt sicher, dass deine Variablen immer gültige Daten enthalten.
Probier es selbst
fun main() {
// TODO: Schreibe deinen Code darunter
// Deklariere eine nicht-nullbare String-Variable namens 'username' mit dem Wert "Kotlin"
// Deklariere eine nicht-nullbare Int-Variable namens 'score' mit dem Wert 100
// Gib beide Werte mit println() in getrennten 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