2012-02-28 47 views

回答

7

在引擎蓋下,String*作爲Seq[String]傳遞。這一切都只是語法糖:

def blah(ss: String*) = {...} 
blah("Hi","there") 

變成

def blah(ss: Seq[String]) = {...} 
blah(Seq("Hi", "there")) 

:_*只是意味着「抱糖,我已經得到了你所需要的 - 一個序列!」

+0

即它不是Seq的方法,只是另一種糖 - 某種特殊的操作符? :) – tuxSlayer 2012-02-28 20:00:27

+1

@tuxSlayer - 是的。 ':'意味着「是類型的」,就像在'val x:Int'中一樣('x'是'Int'類型的)。所以'_ *'應該是某種類型(「我知道你想要可變參數,但是,看這裏,我已經有了Seq!」類型)。好的,這不是一個真正的類型,但至少糖是語法一致的。 – 2012-02-28 20:02:24

+0

好的,謝謝。就在今天,我花了一些時間在圖書館尋找這種方法:)現在它清楚:) – tuxSlayer 2012-02-28 20:04:51

相關問題