【发布时间】:2011-06-12 14:20:06
【问题描述】:
我想知道最好的方法是什么。
val foo = Some("a")
val bar = Some(2)
def baz(a: String, b: Int) = if((b % 2) == 0) Some(a+","+b) else None
(x zip y) flatMap baz //does not compile of course
(x zip y) flatMap { x => baz(x._1, x._2) } //ugly
我假设 Odersky 等人。在这个例子中,他们还有另一个技巧来减少噪音。
所以问题是如果不允许更改baz 的实现(例如def baz(a: (String Int))),如何解决这里的混乱。
【问题讨论】:
-
+1 我知道它有点重复,但恕我直言,标题更好,所以会被更多人找到:)