HOWTO · Kotlin

Utiliser l'opérateur Elvis dans Kotlin

Nous découvrirons l'opérateur Elvis dans Kotlin et son fonctionnement. Nous allons également regarder quelques exemples pour comprendre l'utilisation de l'opérateur Elvis.

Vous souvenez-vous de l’opérateur ternaire de Java ? L’opérateur Elvis dans Kotlin est quelque chose de similaire à cela.

Le symbole de l’opérateur Elvis est un point d’interrogation suivi de deux-points (?:). C’est un opérateur binaire qui évaluera deux expressions.

Si l’expression de gauche n’est pas nulle, elle utilisera la référence ou la valeur de cette expression. Mais si l’expression de gauche a une référence nulle, elle exécutera l’expression de droite.

L’opérateur Elvis évaluera l’expression de droite uniquement si l’expression de gauche est nulle.

Utiliser l’opérateur Elvis dans Kotlin

Supposons que vous ayez une valeur nulle dans une variable mais que vous souhaitiez utiliser uniquement une valeur non nulle. Vous pouvez le faire en utilisant une instruction if-else.

fun main(args: Array<String>) {
    var str: String? = null
    var str1: String? = "Hi, Welcome!"
    var l:  Int = if (str != null) str.length else -1
    var l1:  Int = if (str1 != null) str1.length else -1
    println("str's legth is ${l}")
    println("str1's length is ${l1}")
}

Production:

Utiliser if-else pour les instructions conditionnelles

L’opérateur Elvis permet de raccourcir le code ci-dessus. Ainsi, nous pouvons utiliser l’opérateur Elvis au lieu d’écrire l’intégralité de l’instruction if-else.

Cliquez ici pour vérifier la démo de l’exemple.

Voici un exemple de l’opérateur Elvis. Nous allons essayer d’exécuter les mêmes résultats que dans le code ci-dessus, mais cette fois en utilisant l’opérateur Elvis.

fun main(args: Array<String>) {
    var str: String? = null
    var str1: String? = "Hi, Welcome!"
    var l:  Int = str ?.length ?: -1
    var l1:  Int = str1 ?.length ?: -1
    println("str's legth is ${l}")
    println("str1's length is ${l1}")
}

Production:

Utilisation de l’opérateur Elvis

Cliquez ici pour vérifier la démo de l’exemple.

Conclusion

Nous pouvons également utiliser l’opérateur Elvis dans Kotlin pour les contrôles de sécurité nuls. Étant donné que throw et return sont des expressions, nous pouvons les utiliser sur le côté droit de l’opérateur Elvis pour une vérification de sécurité nulle.