【问题标题】:scala: How to pass an expanded list as varargs into a method?scala:如何将扩展列表作为可变参数传递给方法?
【发布时间】:2011-03-31 04:45:48
【问题描述】:

在 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], 这需要一个可变参数样式参数。

有没有办法将IndexedSeq 转换为可以通过Map.apply 接受?

【问题讨论】:

    标签: scala map variadic-functions


    【解决方案1】:

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

    使用:_* 将其显式键入为可变参数似乎可行。

    【讨论】:

      【解决方案2】:

      或者这也应该起作用:

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

      【讨论】:

        猜你喜欢
        • 2013-12-25
        • 1970-01-01
        • 2013-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多