scala:如何将扩展列表作为varargs传递给方法?

时间:2011-03-31 04:45:48

标签: scala map variadic-functions

在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接受?

2 个答案:

答案 0 :(得分:91)

试试这个:Map(entities.map{e => e.id -> e}:_*)

使用:_*明确地将其键入为varargs似乎有效。

答案 1 :(得分:6)

或者这也应该有效:

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