Izskaidrojiet, kas ir null drošība Kotlin valodā.
sobes.tech AI
Atbilde no AI
Null safety — tas ir Kotlin valodas funkcija, kas novērš kļūdas, kas saistītas ar null atsaucēm. To sasniedz, izveidojot divus atsauces tipus: nullable (atļauj null) un non-nullable (neatļauj null).
Non-nullable tipi tiek deklarēti parasti:
var nonNullableString: String = "Hello" // Nav iespējams būt null
Nullable tipi tiek deklarēti, izmantojot simbolu ? pēc tipa nosaukuma:
var nullableString: String? = "Hello" // Var būt null
nullableString = null
Kotlin pieprasa skaidri apstrādāt nullable tipus, novēršot tiešu piekļuvi to locekļiem bez iepriekšējas null pārbaudes. Tam ir šādi mehānismi:
-
Drošas izsaukšanas operators (
?.): Izsauc metodi vai piekļūst īpašībai tikai tad, ja objekts navnull. Pretējā gadījumā tas atgriežnull:val length = nullableString?.length // length būs Int? vai null -
Elvis operators (
?:): Nodrošina noklusējuma vērtību, ja izteiksme pa kreisi irnull:val nonNullLength = nullableString?.length ?: 0 // nonNullLength būs Int, 0, ja nullableString ir null -
!!-ne-null apstiprināšanas operators: Pārvērš nullable tipu uz non-nullable. Ja vērtība irnull, tas izmetNullPointerException. To izmanto, ja izstrādātājs ir pārliecināts, ka vērtība navnull:val sureLength = nullableString!!.length // Izmet NullPointerException, ja nullableString ir null -
if pārbaudes: Tradicionāla
nullpārbaude arif. Smart cast (gudrs pārvēršana) notiek pēcnullpārbaudes, ja tā ir veiksmīga:if (nullableString != null) { val length = nullableString.length // Šeit nullableString tiek uzskatīts par String }
Šie mehānismi ļauj skaidri pārvaldīt situācijas, kad mainīgais var būt null, kas ievērojami samazina NullPointerException rašanās iespēju programmas izpildes laikā.