2012-02-28 49 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

相关问题