【发布时间】:2011-07-16 17:27:24
【问题描述】:
我想知道为什么 scala.Option 没有像这样定义的 fold 方法:
fold(ifSome: A => B , ifNone: => B)
相当于
map(ifSome).getOrElse(ifNone)
没有比使用map + getOrElse更好的方法吗?
【问题讨论】:
-
你真的想要
else: => B——实际上它不应该被称为else,因为这是一个保留字。但无论如何,您希望通过名称传递 option-is-empty 案例,以便获得惰性评估。 -
已编辑以将类型签名修复到规范折叠。
-
我远不是一个 scalaz 策划者——实际上是一个 scala 初学者——但我实际上更喜欢 map 和 getOrElse。我发现
fold只是要学习的其他东西。也许我需要更新我的思想。 -
另见stackoverflow.com/questions/5654004/…,它显示(接近尾声)选项的 ifSome/ifNone 皮条客。
标签: scala map fold scala-option