Czym jest bezpieczeństwo null
Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 12 z 93.
W wielu językach programowania jednym z najczęstszych błędów jest próba uzyskania dostępu do czegoś, co nie istnieje: wartości null. Dzieje się tak, gdy zmienna przechowuje „nic” zamiast rzeczywistych danych.
Wyobraź sobie, że pytasz o imię użytkownika, ale nie podał on żadnego. Jeśli twój kod spróbuje użyć tego pustego imienia bez wcześniejszego sprawdzenia, program ulegnie awarii. Ten rodzaj błędu jest tak powszechny, że nazwano go „błędem wartym miliard dolarów”.
Rozwiązanie Kotlin: bezpieczeństwo obsługi wartości null
Kotlin został zaprojektowany, aby wyeliminować te awarie. Domyślnie zmienne w Kotlinie nie mogą przechowywać wartości null:
fun main() {
var name: String = "Alice"
name = null // Błąd! Nie skompiluje się
}Kompilator wykrywa ten problem, zanim Twój kod w ogóle się uruchomi. To właśnie sprawia, że Kotlin jest „bezpieczny pod względem wartości null”: sam język zapobiega przypadkowemu użyciu wartości null w miejscach, w których nie powinno się jej używać.
W nadchodzących lekcjach dowiesz się, jak Kotlin pozwala pracować z wartościami, które mogą być null, gdy są potrzebne, a jednocześnie chroni kod przed awariami.
Wyzwanie
ŁatwyZadeklaruj dwie zmienne, które nie mogą przyjmować wartości null, aby zaprezentować obsługę wartości null w Kotlinie:
- Zmienna typu
Stringo nazwieusernamez wartością"Kotlin" - Zmienna typu
Into nazwiescorez wartością100
Następnie wypisz obie wartości w osobnych wierszach za pomocą println().
Pamiętaj: w Kotlinie zwykłe typy (które nie mogą przyjmować wartości null) nie mogą przechowywać wartości
null. Kompilator dba o to, by zmienne zawsze zawierały prawidłowe dane.
Spróbuj swoich sił
fun main() {
// TODO: Napisz swój kod poniżej
// Zadeklaruj zmienną typu String, która nie może mieć wartości null, o nazwie 'username' i wartości "Kotlin"
// Zadeklaruj zmienną typu Int, która nie może mieć wartości null, o nazwie 'score' i wartości 100
// Wypisz obie wartości w osobnych wierszach za pomocą println()
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory – część 1
Operatory arytmetyczneOperator moduloPrzypisanie z operatoremOperatory porównaniaPowtórka – proste działania matematyczne7Podstawowe wejście/wyjście
Funkcja printlnSzablony ciągów znakówWczytywanie danych przez ReadLineKonwersja typówPowtórka — lata do emeryturyPowtórka — prawda czy fałsz10Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneArgumenty nazwaneWartości domyślneFunkcje z pojedynczym wyrażeniemPowtórka – funkcja SigmaPowtórka – funkcja walidująca2Zmienne
Val a VarWnioskowanie o typieLiczbyŁańcuch znakówWartość logicznaKonwencje nazewnictwaPowtórzenie – inicjalizacja zmiennych5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Operatory logiczne, część 3Operator trójargumentowy z wyrażeniem ifPowtórka — prosta logika8Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych11FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz3Obsługa wartości null
Czym jest bezpieczeństwo nullTypy dopuszczające nullOperator bezpiecznego wywołaniaOperator ElvisPodstawy wyzwania z funkcjamiAsercja wartości niebędącej nullPodsumowanie — bezpieczny dostęp6Podejmowanie decyzji
Instrukcja ifIf - elseIf jako wyrażenieWyrażenie whenWhen z zakresamiPowtórka — prosty kalkulator9Pętle
Pętla forPętla whilePętla do-whileBreakContinueZakresy w pętlachPętla zagnieżdżonaPowtórka – silniaPowtórka – dynamiczne wprowadzanie danychPoćwicz samodzielnie: Edytor online Kotlin