Der Unterschied zwischen Operatoren ist und wie in Kotlin

Kailash Vaviya 15 Februar 2024
  1. Kotlin ist Operator
  2. Kotlin als Operator
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)
}

Code ausführen

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)

}

Code ausführen

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)
}

Code ausführen

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:

Die Verwendung eines unsicheren Cast-Operators löst einen Fehler aus

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)

}

Code ausführen

Ausgang:

null
Kailash Vaviya avatar Kailash Vaviya avatar

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

Verwandter Artikel - Kotlin Operator