2012-10-09 42 views
1

有没有办法如何从动态提取元组的值?动态提取元组值

假设元组:

val x = ("1", 2, "3") 

和方法:

def doFoo(value1: String, value2: Int, value3: String)={} 

我怎么能说doFoo()与元组 'X'?像doFoo(x)这样的东西,并且元组中的值被动态提取以匹配方法签名。

回答

15
(doFoo _).tupled(x) 

Function.tupled(doFoo _)(x) 
+0

尼斯的答案。我认为你有一个错字 - 第二个解决方案不应该是Function.tupled(doFoo _)(x)吗? – hyperboreean

+0

谢谢,我第一次看到这个。 – GarfieldKlon

+0

@hyperboreean,no。当你想要传递一个函数名的方法名时,如果类型符合,方法将自动提升到所需的函数类型。这称为eta扩展。 – missingfaktor