gpt4 book ai didi

java - Java 8's Optional, Scala' s Option 和 Haskell 的 Maybe 之间的主要区别是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 21:06:20 24 4
gpt4 key购买 nike

我已经阅读了一些关于 Java 8 即将推出的 Optional 类型的帖子,并且我试图理解为什么人们一直认为它不如 Scala 的 Option 强大。据我所知,它有:

  • 使用 Java 8 lambda 的 map 和 filter 等高阶函数。
  • Monadic flatMap
  • 通过 getOrElse 类型函数短路。

我错过了什么?

最佳答案

我想到了一些可能性(OTOH,我还没有看到人们真的这么说,所以他们可能有其他意思):

  1. 没有模式匹配。

  2. 不等同于 Scala 的 fold 或 Haskell 的 fromMaybe:你必须做 optional.map(...).orElseGet(... ) 而不是。

  3. 没有 monadic 语法。

我自己也不会称这些中的任何一个为“不那么强大”,因为你可以用相应的 Scala/Haskell 类型表达你能表达的一切;这些都是简洁性/可用性问题。

关于java - Java 8's Optional, Scala' s Option 和 Haskell 的 Maybe 之间的主要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com