Verwendung des Elvis-Operator in Kotlin
Erinnern Sie sich an den ternären Operator von Java? Elvis-Operator in Kotlin ist so etwas Ähnliches.
Das Symbol des Elvis-Operators ist ein Fragezeichen gefolgt von einem Doppelpunkt (?:
). Es ist ein binärer Operator, der zwei Ausdrücke auswertet.
Wenn der linke Ausdruck nicht null ist, wird die Referenz oder der Wert in diesem Ausdruck verwendet. Wenn der linke Ausdruck jedoch eine Nullreferenz hat, wird der rechte Ausdruck ausgeführt.
Der Elvis-Operator wertet den Ausdruck auf der rechten Seite nur aus, wenn der Ausdruck auf der linken Seite null ist.
Verwenden Sie den Elvis-Operator in Kotlin
Angenommen, Sie haben einen Nullwert in einer Variablen, möchten aber nur einen Nicht-Nullwert verwenden. Sie können dies mit einer if-else
-Anweisung tun.
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}")
}
Ausgabe:
Der Elvis-Operator ermöglicht das Kürzen des obigen Codes. Wir können also den Elvis-Operator verwenden, anstatt die gesamte if-else
-Anweisung zu schreiben.
Klicken Sie hier, um die Demo des Beispiels zu überprüfen.
Hier ist ein Beispiel für den Elvis-Operator. Wir werden versuchen, dieselben Ergebnisse wie im obigen Code auszuführen, diesmal jedoch mit dem Elvis-Operator.
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}")
}
Ausgabe:
Klicken Sie hier, um die Demo des Beispiels zu überprüfen.
Fazit
Wir können auch den Elvis-Operator in Kotlin für Null-Sicherheitsprüfungen verwenden. Da throw
und return
Ausdrücke sind, können wir sie auf der rechten Seite des Elvis-Operators für die Nullsicherheitsprüfung verwenden.
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