web-dev-qa-db-ja.com

scala:拡張リストを可変引数としてメソッドに渡す方法は?

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スタイルの引数が必要です。

_Map.apply_を介して受け入れられるようにIndexedSeqを変換する方法はありますか?

50
dsg

これを試してください:Map(entities.map{e => e.id -> e}:_*)

:_*を使用して、可変引数として明示的に入力すると機能するようです。

93
dsg

またはこれもうまくいくはずです:

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