3

我想替换一个Option非空的值。我可以使用map(_ => newValue)类似 in的常量函数来做到这一点

Some("text").map(_ => 42)

有没有更简洁的方法,比如 Haskell 的<$in 42 <$ Just "text"

4

2 回答 2

7

IMO 已经很简洁了。它不会比标准库更短。(有关使用 Scalaz 的答案,请参见下文。)

于 2013-08-15T09:05:04.140 回答
7

斯卡拉兹

scala> 1.some >| "x"
res0: Option[String] = Some(x)

scala> none[Int] >| "x"
res1: Option[String] = None

您可以使用as而不是>|.

如果您正在寻找“像 Haskell 中”的东西,您可能应该看看Scalaz.

于 2013-08-15T09:05:29.037 回答