Bester Weg zur Null-Prüfung in Kotlin: Vergleich mit null, sicherer Aufruf oder Elvis-Operator?
Hallo Kollegen! Ich habe kürzlich nach Java angefangen, Kotlin zu lernen, und bin auf das Problem gestoßen, den richtigen Weg zur Null-Prüfung zu wählen. In Kotlin gibt es, wie ich verstanden habe, viele verschiedene Ansätze, und ich bin verwirrt, welcher als "best practice" gilt.
Zum Beispiel habe ich diesen Code:
```kotlin
data class User(val name: String?, val email: String?)
fun printUserName(user: User?) {
// Variante 1: if-Prüfung
if (user != null) {
println(user.name)
}
// Variante 2: Verwendung von ?.let
user?.let {
println(it.name)
}
// Variante 3: Verwendung von !!
println(user!!.name)
}
```
Die erste Variante erscheint mir zu ausführlich, die zweite ungewohnt, und die dritte weiß ich, dass man sie nicht verwenden sollte, da sie eine NPE auslösen kann. Aber was soll man für verschiedene Situationen wählen?
Außerdem sehe ich oft in fremdem Code die Verwendung des Elvis-Operators `?:` mit `throw` oder `return`. Wann ist das angemessen? Und gibt es irgendwelche Empfehlungen zur Leistung der verschiedenen Ansätze?