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 风格的参数。
有没有办法转换IndexedSeq
,以便可以通过Map.apply
接受它?
When creating a Map
in scala, I call Map(entities.map{e => e.id -> e})
, and I get:
found : scala.collection.mutable.IndexedSeq[(Int, Entity)]
required: (Int, Entity)
This is because the signature for Map.apply
is: def apply[A, B](elems: (A, B)*): CC[A, B]
,
which requires a varargs style argument.
Is there a way to convert the IndexedSeq
so that it can be accepted via Map.apply
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个:
Map(entities.map{e => e.id -> e}:_*)
使用
:_*
显式地将其输入为可变参数似乎去工作。Try this:
Map(entities.map{e => e.id -> e}:_*)
Explicitly typing it as a varargs using
:_*
seems to work.或者这也应该有效:
Or this should work too: