Как: _ * преобразовать упорядоченные коллекции в переменные списки аргументов? - PullRequest
6 голосов
/ 28 февраля 2012

Я использовал :_* для преобразования Seq[String] в String* и понял, что не понимаю, как это работает под капотом.

Есть ли простой способ думать об этом?

1 Ответ

7 голосов
/ 28 февраля 2012

Под капотом String* передается как Seq[String].Это всего лишь синтаксический сахар:

def blah(ss: String*) = {...}
blah("Hi","there")

превращается в

def blah(ss: Seq[String]) = {...}
blah(Seq("Hi", "there"))

и :_* просто означает «держи сахар, я уже получил то, что тебе нужно - Seq! "

...