2016-07-28 168 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)(表示爲_)創建(*)可變數目。