Подтвердить что ты не робот

Scala: Как передать расширенный список как varargs в метод?

При создании Map в scala я вызываю Map(entities.map{e => e.id -> e}), и я получаю:

found   : scala.collection.mutable.IndexedSeq[(Int, Entity)]
required: (Int, Entity)

Это потому, что подпись для Map.apply: def apply[A, B](elems: (A, B)*): CC[A, B], который требует аргумента стиля varargs.

Есть ли способ конвертировать IndexedSeq, чтобы его можно было принять через Map.apply?

4b9b3361

Ответ 1

Попробуйте следующее: Map(entities.map{e => e.id -> e}:_*)

Явно печатаю его как varargs с использованием :_*, похоже, работает.

Ответ 2

Или это тоже должно работать:

entities.map{e => e.id -> e} toMap