Der Unterschied zwischen Operatoren ist und wie in Kotlin
Dieser Artikel stellt den Unterschied zwischen den Operatoren is
und as
in Kotlin vor. Obwohl die Verwendung dieser Operatoren ähnlich erscheinen mag, sind sie doch unterschiedlich.
Kotlin ist
Operator
Der Kotlin-Operator is
wird zur Typprüfung verwendet. Angenommen, wir haben mehrere Klassen mit unterschiedlichen Variablen in einer Schnittstelle und möchten die öffentlichen Variablen austauschbar mit unterschiedlichen Methoden verwenden.
In diesem Fall müssen wir prüfen, ob der Datentyp der erforderlichen Parameter in beiden Methoden ähnlich ist. Der Code gibt einen Fehler aus, wenn der Datentyp nicht ähnlich ist.
Wenn beispielsweise eine Methode einen Parameter vom Datentyp String
benötigt, müssen wir den Datentyp der übergebenen Variablen überprüfen. Der Kotlin-Operator is
ermöglicht uns dies.
Es gibt einen booleschen Wert zurück, und wenn beide Operanden des Operators is
denselben Datentyp haben, gibt es true
zurück. Andernfalls wird false
zurückgegeben.
Der Kotlin-Operator is
ist ein Typprüfungsoperator. Daher können wir es verwenden, um zu überprüfen, ob der Datentyp einer Variablen dem entspricht, was wir denken.
Codebeispiel:
fun main(args: Array<String>) {
var s: Any = "Hey, this is Kotlin programming!"
val r = s is String
println("The variable s is a String: " + r)
}
Ausgang:
The variable s is a String: true
Der Kotlin-Operator is
entspricht dem Operator instanceof
von Java. Daher können wir es verwenden, um das Objekt einer Klasse zu überprüfen.
Codebeispiel:
class exampleClass {
var v: String = "Kotlin Programming!"
fun exampleFunc() {
println("Official Android language is - " + v)
}
}
fun main(args: Array<String>) {
val obj = exampleClass() // Creating an object
obj.exampleFunc()
val result = obj is exampleClass // Using the Kotlin is operator
println("The object obj is an instance of the class exampleClass: " + result)
}
Ausgang:
Official Android language is - Kotlin Programming!
The object obj is an instance of the class exampleClass: true
Kotlin als
Operator
Der Kotlin-Operator as
wird für die explizite Typumwandlung verwendet. Der Kotlin as
ist kein laufzeitsicherer Operator.
Wenn wir versehentlich ein falsches Objekt übergeben, führt der Operator as
zu einem Fehler. Daher wird immer empfohlen, Kotlins sicheren Cast-Operator as?
zu verwenden.
Das wie?
Der Operator gibt nach Möglichkeit den umgewandelten Wert zurück. Andernfalls wird eine null
zurückgegeben.
Unsicheren Cast-Operator as
verwenden
Der unsichere Cast-Operator as
funktioniert gut, bis wir einen Operanden übergeben, der in den Zieltyp konvertiert werden kann.
Codebeispiel:
fun main(args: Array<String>){
val s: String = "Convertible"
val s1: String = s as String
println(s1)
}
Convertible
Aber wenn wir versuchen, etwas zu konvertieren, das mit dem Zieltyp nicht kompatibel ist, wird ein Fehler ausgegeben.
Codebeispiel:
fun main(args: Array<String>){
val s: String = 18
val s1: String = s as String
println(s1)
}
Fehlerausgabe:
Der sichere Cast-Operator as?
ist am besten, den Fehler zu vermeiden.
Verwenden Sie den Safe Cast-Operator As?
Wie bereits erwähnt, gibt der Safe-Cast-Operator null
zurück, wenn die Typumwandlung nicht möglich ist.
fun main(args: Array<String>){
var s: Any = "Kotlin"
var s1 = 18
// Returns null when casting is not possible
val s2: String? = s1 as? String
println(s2)
}
Ausgang:
null
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