Utiliser l'opérateur Elvis dans Kotlin
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:
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:
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.
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn