2012-10-09 33 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