scala: ¿Cómo pasar una lista expandida como varargs a un método?
map variadic-functions (2)
Al crear un Map
en scala, llamo a Map(entities.map{e => e.id -> e})
, y obtengo:
found : scala.collection.mutable.IndexedSeq[(Int, Entity)]
required: (Int, Entity)
Esto se debe a que la firma de Map.apply
es: def apply[A, B](elems: (A, B)*): CC[A, B]
, que requiere un argumento de estilo varargs.
¿Hay alguna forma de convertir IndexedSeq
para que pueda ser aceptado a través de Map.apply
?
O esto debería funcionar también:
entities.map{e => e.id -> e} toMap
Pruebe esto: Map(entities.map{e => e.id -> e}:_*)
Explicarlo explícitamente como un varargs usando :_*
parece funcionar.