Avatar ·

Meilleure façon de vérifier null en Kotlin : comparaison avec null, appel sécurisé ou opérateur Elvis ?

Bonjour, collègues ! J'ai récemment commencé à apprendre Kotlin après Java et j'ai rencontré un problème pour choisir la bonne façon de vérifier null. En Kotlin, comme je l'ai compris, il existe de nombreuses approches différentes, et je suis confus quant à laquelle est considérée comme "best practice". Par exemple, j'ai ce code : ```kotlin data class User(val name: String?, val email: String?) fun printUserName(user: User?) { // Option 1 : Vérification if if (user != null) { println(user.name) } // Option 2 : Utilisation de ?.let user?.let { println(it.name) } // Option 3 : Utilisation de !! println(user!!.name) } ``` La première option me semble trop verbeuse, la seconde est inhabituelle, et la troisième, je sais qu'il ne faut pas l'utiliser car elle peut lancer une NPE. Mais que choisir pour différentes situations ? Je vois aussi souvent dans le code des autres l'utilisation de l'opérateur Elvis `?:` avec `throw` ou `return`. Quand est-ce approprié ? Et y a-t-il des recommandations sur les performances des différentes approches ?