这个Scala语法是什么意思(_ *)?

时间:2016-07-28 14:02:23

标签: scala

我看到了这个Scala语法,我不明白这意味着什么:

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

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

1 个答案:

答案 0 :(得分:1)

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

换句话说,这意味着您传递Array类型为_的{​​{1}}类型,其中包含从maping collection *创建的可变数量的参数(b)元组(String, String)(表示为_)。