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?
No answers yet.
Faça login para deixar uma resposta
Blogs