我想知道做到这一点的最佳方法是什么。调用使用元组作为参数列表的方法
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 et al。在这个例子中,他们还有另一个技巧来减少噪音。
所以问题是如何在这里打击混乱,假设你不允许改变baz
(例如def baz(a: (String Int))
)的实现。
+1我知道这是一种重复,但恕我直言标题是更好的方式,所以它会被更多人发现:) – fresskoma 2011-06-12 16:35:45