2012-09-16 21 views
1
def main(args: Array[String]) { 
     foo("hello") 
    } 

    def foo(args:Any*){ 
    bar(args) 
    } 

    def bar(args:Any *){ 
    println(args) 
    } 

看上面的代碼中,輸出是WrappedArray(WrappedArray(你好))階可變參數(在任何*)纏繞兩次

字符串 'hello' 纏繞兩次,如何避免這種

回答

5

bar調用,這樣寫:

bar(args: _*) 

這告訴編譯器,使用T他參考args,在這一點上它非常類似於Seq[T],並將它們中的每一個單獨傳遞給bar,而不是將args作爲bar接受的第一個重複參數。

+0

你能否做出解釋? – jilen

+0

@jilen這個回答很好地涵蓋了這個話題:http://stackoverflow.com/questions/4176440/syntax-sugar –