Avatar ·

Por que Kotlin proíbe usar Result<T> como tipo de retorno de função?

Olá a todos! Estou aprendendo Kotlin e me deparei com um problema estranho. Queria escrever uma função que retorna ou um resultado bem-sucedido ou uma exceção, usando a classe embutida `Result`. Aqui está meu código: ```kotlin fun divide(a: Int, b: Int): Result { return try { Result.success(a / b) } catch (e: ArithmeticException) { Result.failure(e) } } ``` Mas o compilador dá um erro: *"'kotlin.Result' cannot be used as a return type"*. Tentei usar `Result?` e até mesmo encapsular em `Any`, mas nada resolve. Enquanto isso, posso usar `Result` dentro do corpo da função, por exemplo, retorná-lo de `runCatching`, mas não como tipo de retorno. Por que isso? Em Java, posso usar `Optional` ou meus próprios wrappers. Li que isso está relacionado ao design da linguagem, mas não entendo os detalhes. Existe alguma solução alternativa? Explique, por favor, para um iniciante. Desde já, obrigado! <<>>

Por que Kotlin proíbe Result como tipo de retorno?