¿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!