Kotlin Null Controllo

Kotlin Null Controllo
Se hai mai scritto il codice in Java o in un'altra lingua con il concetto di riferimenti nulli, probabilmente hai attraversato un nullpointerException. Un nullpointerException viene lanciato dal compilatore Kotlin se trova un riferimento nullo prima di eseguire ulteriori istruzioni. Nell'articolo discuteremo della tecnica preferita e sofisticata per gestire efficacemente la sicurezza nulla a Kotlin per utilizzare alcuni operatori specializzati.

Tipi null e non nulli in Kotlin

L'obiettivo di Kotlin è eliminare la possibilità di un nullpointerException. Le variabili di Kotlin sono tutte non nulli per impostazione predefinita. Di conseguenza, non possiamo dare a una variabile un valore nullo perché attiverà un errore di compilazione. Su una variabile non nullo, possiamo invocare una funzione o accedere a una proprietà. Tuttavia, nel verificarsi di variabili nulli, dobbiamo gestire esplicitamente la condizione nulla. Altrimenti, Kotlin notificherà che la variabile ha riferimenti nulli, generando un errore di compilazione.

Come controllare i valori null in Kotlin?

Per comprendere le basi dell'utilizzo della tecnica per controllare i valori null in Kotlin, abbiamo i seguenti esempi:

Esempio n. 1: usando if-else per il controllo di null in kotlin:

Per controllare le condizioni, utilizziamo la parola chiave "if". La clausola "if-else" viene utilizzata nel codice per convalidare la sicurezza nulla di una variabile. Di seguito abbiamo l'implementazione del codice.


Nel codice sopra, abbiamo la funzione principale. Alla variabile viene assegnato un nome "STR" e imposta la proprietà del tipo di stringa su di esso. La "STR" contiene il valore della stringa, che abbiamo stampato tramite la funzione Kotlin Println. Quindi, abbiamo un'istruzione "if" in cui abbiamo mantenuto la variabile "str" ​​non uguale a un valore nullo. Il blocco "if" eseguirà e stamperà la lunghezza della stringa se la condizione è vera. Altrimenti, abbiamo un blocco "else" da eseguire.

Dato che abbiamo una stringa memorizzata in una "STR" variabile, la condizione diventa vera e l'uscita della lunghezza della stringa viene visualizzata sullo schermo in basso.

Esempio n. 2: utilizzando l'operatore Elvis per il controllo di Null in Kotlin:

Quando è necessario restituire un valore predefinito nel caso di un riferimento nullo, dobbiamo utilizzare l'operatore Elvis. Il lato destro è considerato quando abbiamo l'espressione del lato sinistro nullo.

Nella funzione principale del codice sopra, abbiamo dichiarato una variabile come "var" e gli abbiamo assegnato il nome "Mystr". Abbiamo impostato la proprietà della variabile come tipo di stringa con l'operatore di sicurezza null, che controllerà la nulllabilità della variabile. La variabile contiene un valore di stringa e utilizzando la funzione println, stamperemo la lunghezza della stringa specificata. Quindi abbiamo renitializzato una variabile "mystr" con il null. Nella funzione println, abbiamo usato l'operatore Elvis "?: "Per eseguire la lunghezza della stringa o l'espressione del lato sinistro su condizione.

L'output "25" è la lunghezza della stringa che abbiamo inizializzato in una variabile "Mystr" all'inizio. Dopo aver reinizializzando la variabile "Mystr" a NULL, l'output è "-1". Abbiamo usato l'operatore Elvis, di cui l'espressione sinistra esegue perché l'espressione giusta è nulla.

Esempio n. 3: usando?.Lascia che l'operatore per il controllo di Null in Kotlin:

Possiamo usare l'operatore let solo per agire quando un riferimento contiene un valore non nubile. Se la variabile dichiarata non è nulla, l'espressione di lambda all'interno del "let" verrà eseguita.

Nel codice sopra, abbiamo dichiarato la funzione principale in cui esiste una variabile rappresentata con la parola chiave "var". La variabile è definita come "mylist", con un'interfaccia "elenco". Abbiamo inizializzato la variabile "mylist" con alcuni valori usando la funzione listof. Abbiamo creato un'altra variabile, "newlist", che invoca la funzione listof.

Qui, abbiamo un ciclo "per" a cui abbiamo assegnato gli elementi di "mylist" agli "elementi". Quindi, abbiamo applicato il "?.Lascia "operatore sugli" elementi ", che eseguiranno solo per valori non nutribili. Abbiamo utilizzato la funzione Plus nella variabile newlist, che restituirà l'output della creazione di un nuovo elenco da un elenco esistente e un elemento fornito dell'elenco appena creato. Abbiamo assegnato gli elementi "newlist" agli "elementi" che verranno stampati utilizzando la funzione println.

Esempio # 4: Utilizzo dell'operatore di sicurezza per il controllo di Null in Kotlin:

Se la variabile non è nulla, l'operatore di sicurezza nullo restituisce la proprietà della variabile; Altrimenti, restituisce null. Di conseguenza, la variabile del valore di ritorno dovrebbe essere definita come NULLABLE. L'operatore di sicurezza è indicato con il "?." cartello.
La funzione principale è definita nel codice sopra. Abbiamo creato due variabili nella funzione principale, rappresentata con la parola chiave "var". Le variabili sono chiamate "Mystr" e "Strlen". La variabile "mystr" contiene il valore della stringa e "strlen" è impostato con il tipo int e mantenuta vuota. Successivamente, abbiamo "Strlen", in cui la variabile "Mystr" viene utilizzata per effettuare un controllo null di sicurezza con la lunghezza della proprietà. Attraverso la funzione println, possiamo vedere la stringa e la lunghezza della stringa poiché le variabili sono dichiarate come non nulli. Quindi, abbiamo reniticato la variabile "mystr" con null. L'operatore di controllo null di sicurezza viene nuovamente utilizzato con la proprietà di lunghezza in una variabile "Strlen". La funzione println stamperà la variabile reititialized.

Nella schermata del terminale, viene presentata l'output.

Conclusione:

Questa guida mirava a informarti sul concetto di Null Check in Kotlin in Ubuntu 20.04. Abbiamo imparato a conoscere la sicurezza nulla e le distinzioni tra riferimenti Nullable e non nulli. Abbiamo superato alcuni approcci diversi per affrontare il check in Kotlin. Questi esempi saranno abbastanza efficaci quando si lavora con i controlli null a Kotlin.