【问题标题】:Try monad for kotlin为 kotlin 尝试 monad
【发布时间】:2016-07-02 11:16:22
【问题描述】:

Java 8 没有提供 Try monad。这对于函数式的异常处理很有用。

在 kotlin 中有现成的实现吗?还是我应该实施一个?

【问题讨论】:

  • 你是在问别人是否需要这样的库?

标签: java functional-programming monads kotlin


【解决方案1】:

从 kotlin 1.3 开始你可以使用runCatching

【讨论】:

  • 我对@9​​87654322@ 的一个担忧是它捕获Throwable 而不是Exception,因此它也捕获java.lang.Error` 的任何子类。在我看来这并不理想,因为它可以隐藏错误的实际来源,并且在其中之一之后 JVM 将无法使用。
【解决方案2】:

不幸的是,Kotlin 标准库中没有 Try monad。我只是在学习 FP,但我认为 sealed class 是你自己实现 Try monad 所需要的。还有一些库:ResultfunKTionale

更新。 2018 年 2 月

现在 funKTionaleKategory 合并到 arrow 库中,其中包含 Try monad。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 2015-11-09
    • 2018-12-29
    • 1970-01-01
    • 2020-05-23
    • 2021-10-15
    相关资源
    最近更新 更多