2016-07-28 5 views
-1

Я видел этот синтаксис Scala, и я не понимаю, что это значит:Что означает синтаксис 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 типа _ с переменным числом параметров (*), который был создан из Maping коллекции b в кортеже (String, String) (представлен в виде _).

Смежные вопросы