Tipi nullable
Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 13 di 93.
A volte hai davvero bisogno di una variabile che possa contenere «nulla». Per esempio, il secondo nome di un utente potrebbe non esistere oppure una ricerca potrebbe non restituire risultati. Kotlin lo consente tramite i tipi nullable.
Per rendere nullable un tipo, aggiungi ? dopo il nome del tipo:
fun main() {
var middleName: String? = "Marie"
middleName = null // Ora è consentito!
val age: Int? = null // Può contenere un Int o null
}? dice a Kotlin: "Questa variabile potrebbe essere null, quindi fai attenzione." Senza ?, il tipo non ammette null e non può mai contenere null.
Importante: I tipi nullable e non-nullable sono diversi. Non puoi assegnare direttamente un valore nullable a una variabile non-nullable:
fun main() {
val nullableName: String? = "Alice"
val regularName: String = nullableName // Errore!
}Questa distinzione è intenzionale. Ti costringe a gestire la possibilità che il valore sia null prima di utilizzarlo. Nelle prossime lezioni imparerai i modi sicuri che Kotlin mette a disposizione per lavorare con valori nullable.
Sfida
FacileDichiara le seguenti variabili che possono essere null:
- Una
Stringche può essere null, chiamatanickname, con valore"Shadow" - Un
Intche può essere null, chiamatoage, con valorenull - Un
Doubleche può essere null, chiamatobalance, con valore99.5
Poi stampa tutti e tre i valori su righe separate usando println().
Ricorda di usare
?dopo il nome del tipo per indicare che può essere null. Stampando un valorenull, verrà visualizzata la parolanull.
Provalo tu
fun main() {
// TODO: Dichiara le seguenti variabili nullable:
// 1. Una String nullable chiamata 'nickname' con valore "Shadow"
// 2. Un Int nullable chiamato 'age' con valore null
// 3. Un Double nullable chiamato 'balance' con valore 99.5
// Poi stampa tutti e tre i valori su righe separate
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaOperatori di confrontoRipasso: matematica semplice7Input/output di base
Funzione printlnTemplate di stringheInput con readLineConversione di tipoRiepilogo - Anni alla pensioneRiepilogo - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori di ritornoArgomenti denominatiValori predefinitiFunzioni a espressione singolaRiepilogo - Funzione SigmaRiepilogo - Funzione di validazione2Variabili
Val vs VarInferenza del tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Operatori logici Parte 3Ternario con espressione ifRipasso - Logica semplice8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con un tocco
Panoramica del giocoLa funzione FizzBuzz3Nullabilità
Cos'è la null safetyTipi nullableOperatore di chiamata sicuraOperatore ElvisBasi della sfida sulle funzioniAsserzione non-nullRiepilogo - Accesso sicuro6Prendere decisioni
Istruzione ifIf-elseIf come espressioneEspressione whenwhen con intervalliRiepilogo - Calcolatrice semplice9Cicli
Ciclo forCiclo whileCiclo do-whilebreakcontinueIntervalli nei cicliCiclo annidatoRipasso - fattorialeRipasso - input dinamicoEsercitati da solo: Playground Kotlin