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. Dies geschieht, 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 zu prüfen, 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 vermeiden. Standardmäßig können Variablen in Kotlin keine Nullwerte enthalten:
fun main() {
var name: String = "Alice"
name = null // Fehler! Wird 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 verwendet werden sollte.
In den kommenden Lektionen lernst du, wie Kotlin 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 zu schützen.
Aufgabe
EinfachDeklariere zwei nicht-nullfähige Variablen, um die Nullsicherheit von Kotlin zu veranschaulichen:
- Eine
String-Variable namensusernamemit dem Wert"Kotlin" - Eine
Int-Variable namensscoremit dem Wert100
Gib anschließend beide Werte mithilfe von println() in separaten Zeilen aus.
Denke daran: In Kotlin können reguläre (nicht-nullfähige) 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-nullable String-Variable namens 'username' mit dem Wert "Kotlin"
// Deklariere eine nicht-nullable Int-Variable namens 'score' mit dem Wert 100
// Gib beide Werte in separaten Zeilen mit println() 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