我有一些 scala 代码抱怨 Trait MapOps 中的方法 + 已被弃用(自 2.13.0 起)
代码创建地图
var map : Map[String,Any] = Map()
...
map += ("foo" -> "baa")
此方法返回的映射需要是不可变的。
一些谷歌搜索暗示 += 不是必需的,应该使用 addOne(),但 Map() 没有 addOne()。仅云部署,因此我无法从 IDE 获得任何帮助。
如何创建一个可变映射添加到其中,然后返回一个不可变映射?以一种惯用的方式,不会被弃用。
如何创建一个可变映射添加到其中,然后返回一个不可变映射?
您可以使用
.toMap
将可变 Map 转换为不可变 Map
val map: mutable.Map[String,Any] = mutable.Map()
val map1: immutable.Map[String, Any] = (map += ("foo" -> "baa")).toMap
mutable.Map
+=
并未被弃用,而是 collection.Map
+=
已被弃用。
collection.Map
是 mutable.Map
和 immutable.Map
的父级。