scala: How to pass an expanded list as varargs into a method?
26,442
Solution 1
Try this: Map(entities.map{e => e.id -> e}:_*)
Explicitly typing it as a varargs using :_*
seems to work.
Solution 2
Or this should work too:
entities.map{e => e.id -> e} toMap
Author by
dsg
Updated on March 31, 2020Comments
-
dsg about 4 years
When creating a
Map
in scala, I callMap(entities.map{e => e.id -> e})
, and I get:found : scala.collection.mutable.IndexedSeq[(Int, Entity)] required: (Int, Entity)
This is because the signature for
Map.apply
is:def apply[A, B](elems: (A, B)*): CC[A, B]
, which requires a varargs style argument.Is there a way to convert the
IndexedSeq
so that it can be accepted viaMap.apply
?