这应该是一个简单的 . 如何将函数应用于Scala中的元组?即:
scala> def f (i : Int, j : Int) = i + j
f: (Int,Int)Int
scala> val p = (3,4)
p: (Int, Int) = (3,4)
scala> f p
:6: error: missing arguments for method f in object $iw;
follow this method with `_' if you want to treat it as a partially applied function
f p
^
scala> f _ p
:6: error: value p is not a member of (Int, Int) => Int
f _ p
^
scala> (f _) p
:6: error: value p is not a member of (Int, Int) => Int
(f _) p
^
scala> f(p)
:7: error: wrong number of arguments for method f: (Int,Int)Int
f(p)
^
scala> grr!
提前谢谢了 .
3 回答
在Scala 2.7中:
在Scala 2.8中:
跟进另一个答案,可以写(用2.11.4测试):
见def tupled: ((T1, T2)) ⇒ R: