为什么 Kotlin 禁止使用 Result<T> 作为函数的返回类型?
大家好!我正在学习 Kotlin,遇到了一个奇怪的问题。我想写一个函数,它要么返回成功结果,要么返回异常,使用内置的 `Result` 类。这是我的代码:
```kotlin
fun divide(a: Int, b: Int): Result {
return try {
Result.success(a / b)
} catch (e: ArithmeticException) {
Result.failure(e)
}
}
```
但编译器报错:*"'kotlin.Result' cannot be used as a return type"*。我尝试过使用 `Result?` 甚至包装成 `Any`,但都没用。不过,我可以在函数体内使用 `Result`,比如从 `runCatching` 返回它,但不能作为返回类型。
为什么会这样?在 Java 中可以使用 `Optional` 或自定义包装类。我读到这与语言设计有关,但不懂细节。有没有变通方法?请用新手能懂的方式解释。谢谢!
<<>>