Avatar ·

¿Por qué Kotlin prohíbe usar Result<T> como tipo de retorno de función?

¡Hola a todos! Estoy aprendiendo Kotlin y me encontré con un problema extraño. Quería escribir una función que devuelva un resultado exitoso o una excepción, usando la clase incorporada `Result`. Aquí está mi código: ```kotlin fun divide(a: Int, b: Int): Result { return try { Result.success(a / b) } catch (e: ArithmeticException) { Result.failure(e) } } ``` Pero el compilador da un error: *"'kotlin.Result' cannot be used as a return type"*. Intenté usar `Result?` e incluso envolverlo en `Any`, pero nada funciona. Sin embargo, puedo usar `Result` dentro del cuerpo de la función, por ejemplo, devolverlo desde `runCatching`, pero no como tipo de retorno. ¿Por qué es así? En Java se puede usar `Optional` o envoltorios propios. Leí que esto está relacionado con el diseño del lenguaje, pero no entiendo los detalles. ¿Hay alguna solución alternativa? Explíquenlo, por favor, para un principiante. ¡Gracias de antemano!