我想知道做到這一點的最佳方法是什麼。調用使用元組作爲參數列表的方法
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