web-dev-qa-db-fra.com

Attribuer une valeur à la variable uniquement si elle n'est pas nulle - Kotlin

Il existe un moyen propre dans Kotlin d'attribuer une valeur à une variable uniquement si la valeur n'est pas nulle?

L'exemple est:

if(x != null)
   y = x

J'ai trouvé une solution comme

y = x? : return

mais je ne peux pas comprendre si cela fait ce que je veux et comment cet opérateur fonctionne.

12
BlueSeph

L'opérateur est appelé Elvis Operator. Il évalue si x n'est pas nul et si c'est vrai, affecte x à y. S'il est nul, il évalue l'instruction après le point d'interrogation, renvoyant immédiatement et donc laissant y intacte.

3
fjc

Une autre solution si vous ne voulez pas encore revenir de la fonction:

x?.let{ y = it }

Qui vérifie si x n'est pas nul puis le transmet comme seul paramètre au bloc lambda.

C'est également un appel sûr au cas où votre x est un var.

25
Pawel