我看到了这个Scala语法,我不明白这意味着什么:
val a: HashMap[String, String] = HashMap(b map {s => (s(0), s(1))} : _*)
我理解它需要一对对列表并将其转换为由每对的第一个元素键入的hashmap,并且该值是该对的第二个元素。 但是,我不明白这种语法是如何暗示的,以及_ *的含义。
答案 0 :(得分:1)
首先,s => (s(0), s(1))
创建一个(String, String)
类型的元组。其次,_
是上述元组类型(String, String)
的外卡。然后,使用*
表示它是vararg
(重复参数)。
换句话说,这意味着您传递Array
类型为_
的{{1}}类型,其中包含从maping collection *
创建的可变数量的参数(b
)元组(String, String)
(表示为_
)。