pau*_*lla 4 scala hashmap immutability
我在使用scala.collection.immutable.HashMap的更新方法时遇到问题.我没有看到它返回Map而不是HashMap的原因.如何添加新的键值对来获取新的HashMap?
这是预期的行为.HashMap作为Map涉及使用哈希表进行查找的特定实现,它是最有用的.
通常,你会说var values: Map[String, Any] = new HashMap,然后坐下来使用它,好像它是一个普通的"不可变的" Map.
你有没有理由让你的代码知道它是你之后的HashMap new?
如果您使用的是2.7,那么因为随着时间的推移,集合库已经变得与各种实现类不一致,而不是专门处理某些方法的返回类型.这是为2.8重新设计的集合库中修复的内容之一.
如果你使用2.8,这是因为该update方法已被弃用,你应该使用它updated.这正确地专门化了返回值.
scala> HashMap(1->1, 2->2, 3->3, 4->4).updated(1,3)
res4: scala.collection.immutable.HashMap[Int,Int] = Map((2,2), (4,4), (1,3), (3,3))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |