我正在尝试使用 Kotlin 的 [Result][1]
类型。尽管在成功的情况下它不会返回任何值。我无法让它返回值。以下行给我带来了麻烦:complete(Result.success())
.它不编译。我尝试了 Result<Void>
和 Result<Nothing>
但不能让它工作。
关于如何使其工作的任何建议?
package me.test.app
import android.util.Log
class Test {
fun foo(complete: (Result<Nothing>) -> Unit) {
if (Math.random() > 0.5) {
complete(Result.success())
} else {
complete(Result.failure(Throwable("too low")))
}
}
fun bar() {
foo { result ->
result.fold({
Log.i("APP", "Success")
})
{
Log.i("APP", "Failure")
}
}
}
}
最佳答案
您必须使用 Result<Unit>
.然后您可以调用complete
像这样:
complete(Result.success(Unit))
关于android - 具有泛型和 Void/Nothing 返回类型的 Kotlin 结果类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57395009/