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)
}
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)
}
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)
}
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 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)
}
Producción :
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