2011-03-31 75 views
42

當創建Scala中的一個Map,我打電話Map(entities.map{e => e.id -> e}),我也得到:scala:如何將擴展列表作爲可變參數傳遞給方法?

found : scala.collection.mutable.IndexedSeq[(Int, Entity)] 
required: (Int, Entity) 

這是因爲Map.apply的簽名是:def apply[A, B](elems: (A, B)*): CC[A, B], 這需要一個可變參數樣式參數。

有沒有辦法將IndexedSeq轉換成可以通過Map.apply接受?

回答

81

試試這個:Map(entities.map{e => e.id -> e}:_*)

明確鍵入它作爲使用:_*似乎工作一個可變參數。

6

或者這應該工作太:

entities.map{e => e.id -> e} toMap 
相關問題