Avatar ·

¿Cómo verificar el tipo de objeto (instanceof) en Kotlin?

¡Hola a todos! Acabo de empezar a aprender Kotlin después de Java y me encontré con un problema. En Java estaba acostumbrado a usar el operador `instanceof` para verificar el tipo de objeto, por ejemplo: ```java if (obj instanceof String) { String str = (String) obj; System.out.println(str.length()); } ``` Pero en Kotlin no puedo encontrar un análogo. Intenté escribir algo como `obj instanceof String`, pero el compilador da un error. Sé que en Kotlin existe la palabra clave `is`, pero no estoy seguro de cómo usarla correctamente. Además, en Java después de la verificación con `instanceof` tenía que hacer un cast explícito, mientras que en Kotlin, según tengo entendido, ¿esto se hace automáticamente? ¿O no? Por favor, indíquenme cómo verificar correctamente el tipo de objeto en Kotlin y hacer un cast seguro al tipo deseado. Me interesa no solo la sintaxis básica, sino también las mejores prácticas. Por ejemplo, ¿qué hacer si necesito verificar el tipo en una expresión `when` o al trabajar con colecciones? ¡Gracias de antemano por la ayuda! Ejemplo de mi código que no funciona: