Avatar ·

为什么 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` 或自定义包装类。我读到这与语言设计有关,但不懂细节。有没有变通方法?请用新手能懂的方式解释。谢谢! <<>>

为什么 Kotlin 禁止 Result 作为返回类型?