Smart cast to 'Type' is impossible: cómo corregir el error con propiedades mutables en Kotlin
¡Hola! Empecé a estudiar Kotlin y me encontré con un error que no puedo entender. Tengo un código simple donde intento verificar el tipo de una variable y realizar alguna acción si es un string:
```kotlin
var value: Any = "Hello, Kotlin!"
if (value is String) {
println(value.length) // Error: Smart cast to 'String' is impossible
}
```
El compilador muestra: "Smart cast to 'String' is impossible, because 'value' is a mutable property that could have been changed by this time". Entiendo que `value` es una variable mutable, pero ¿por qué es un problema? ¡Acabo de verificar su tipo dentro del `if`! Si usara `val`, funcionaría. Pero necesito que la variable pueda cambiar. ¿Cómo manejar correctamente estas situaciones? ¿Quizás hay algún patrón o forma alternativa? Agradecería una explicación con ejemplos.
<<>>
¿Por qué ocurre el error Smart cast?
El problema es que el compilador de Kotlin no puede garantizar que entre