La diferencia entre operadores es y como en Kotlin

Kailash Vaviya 15 febrero 2024
  1. Operador Kotlin es
  2. Operador Kotlin como
La diferencia entre operadores es y como en Kotlin

Este artículo presenta la diferencia entre los operadores is y as en Kotlin. Si bien el uso de estos operadores puede parecer similar, son diferentes.

Operador Kotlin es

El operador Kotlin is se utiliza para la verificación de tipos. Supongamos que tenemos múltiples clases con diferentes variables en una interfaz y queremos usar las variables públicas indistintamente con diferentes métodos.

En ese caso, tendremos que comprobar si el tipo de datos de los parámetros requeridos en ambos métodos es similar. El código arrojará un error si el tipo de datos no es similar.

Por ejemplo, si un método requiere un parámetro de tipo de datos String, debemos verificar el tipo de datos de la variable que estamos pasando. El operador Kotlin is nos permite hacer esto.

Devuelve un valor booleano, y si ambos operandos del operador es tienen el mismo tipo de datos, devuelve true. En caso contrario, devuelve false.

El operador is de Kotlin es un operador de verificación de tipos. Por lo tanto, podemos usarlo para verificar si el tipo de datos de una variable es el que creemos que es.

Ejemplo de código:

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

Ejecutar código

Producción :

The variable s is a String: true

El operador es de Kotlin es equivalente al operador instancia de de Java. Por lo tanto, podemos usarlo para verificar el objeto de una clase.

Ejemplo de código:

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)

}

Ejecutar código

Producción :

Official Android language is - Kotlin Programming!
The object obj is an instance of the class exampleClass: true

Operador Kotlin como

El operador as de Kotlin se utiliza para la conversión de tipos explícita. Kotlin as no es un operador seguro en tiempo de ejecución.

Si pasamos accidentalmente un objeto erróneo, el operador as dará lugar a un error. Por lo tanto, siempre se recomienda utilizar el operador de casteo seguro de Kotlin ¿como?.

El como? El operador devolverá el valor emitido si es posible. De lo contrario, devolverá un null.

Usar operador de reparto inseguro como

El operador de conversión inseguro as funcionará bien hasta que pasemos un operando que se pueda convertir al tipo de destino.

Ejemplo de código:

fun main(args: Array<String>){
    val s: String = "Convertible"
    val s1: String = s as String
    println(s1)
}

Ejecutar código

Convertible

Pero cuando intentamos convertir algo incompatible con el tipo de destino, arrojará un error.

Ejemplo de código:

fun main(args: Array<String>){
    val s: String = 18
    val s1: String = s as String
    println(s1)
}

Salida de error:

El uso de un operador de conversión inseguro genera un error

El operador de reparto seguro como? Lo mejor es evitar el error.

Usar Safe Cast Operator ¿Como?

Como se mencionó anteriormente, el operador de conversión segura devolverá null cuando la conversión de tipos sea imposible.

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)

}

Ejecutar código

Producción :

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

Artículo relacionado - Kotlin Operator