2015-06-26 161 views
34

考慮下面的代碼:如何將Scala數組傳遞給Scala可變參數方法?

private def test(some:String*){ 

} 

private def call() { 
    val some = Array("asd", "zxc") 
    test(some) 
} 

它打印expect String, found Array[String]爲什麼?斯卡拉可變參數不是數組嗎?

注意

我發現堆棧溢出幾個問題有關Scala的可變參數,但是所有的人都對調用Java可變參數方法或有關轉換斯卡拉列出了陣列。

回答

55

追加:_*的參數test這樣

test(some:_*) 

而當你想到它應該工作。

如果你想知道那個神奇的:_*做什麼,請參考this question

25

這很簡單:

def test(some:String*){} 

def call() { 
    val some = Array("asd", "zxc") 
    test(some: _*) 
} 
相關問題