2016-07-28 7 views
-1

それが何を意味するのか理解していない私は、このScalaの構文を見て、私は:このScalaの構文は何を意味しますか(_ *)?

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

私はそれがペアのリストを受け取り、それぞれの最初の要素をキーとするハッシュマップに変換していることを理解しますペアであり、値はペアの2番目の要素です。 しかし、私はこの構文がどのようにそれを意味するのか、そして何が*の意味を理解していません。

答えて

0

まず、s => (s(0), s(1))はタイプ(String, String)のタプルを作成します。第2に、_は上記タプルのタイプ(String, String)のワイルドカードです。次に、*で、それがvararg(繰り返しパラメータ)であることを示します。

換言すれば、それはあなたが(_として表される)タプル(String, String)に収集bをmapingから作成されたパラメータ(*)の可変数と種類_Arrayを渡すことを意味します。

関連する問題