2016-07-28 118 views
-1

我看到这个斯卡拉语法,我不明白这是什么意思:这个Scala语法是什么意思(_ *)?

val a: HashMap[String, String] = HashMap(b map {s => (s(0), s(1))} : _*)

我明白,它需要对列表并将其转换为每个的第一要素键入一个HashMap对,值是该对中的第二个元素。 但是,我不明白这个语法是如何暗示的,以及_ *的含义。

回答

0

首先,s => (s(0), s(1))创建一个(String, String)类型的元组。其次,_是上述元组类型(String, String)的通配符。然后,用*表明它是一个vararg(重复参数)。

因此,换句话说,这意味着你传递_类型的Array用的参数,这些参数是从马平集合b成元组(String, String)(表示为_)创建(*)可变数目。