在scala中创建Map
时,我会调用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
接受?
答案 0 :(得分:91)
试试这个:Map(entities.map{e => e.id -> e}:_*)
使用:_*
明确地将其键入为varargs似乎有效。
答案 1 :(得分:6)
或者这也应该有效:
entities.map{e => e.id -> e} toMap