pat*_*ent 3 scala scala-collections
通常,我发现自己实现了从输入源构建地图的方法.在这种情况下,我使用a scala.collection.mutable.Map,假设速度和效率更高; 然而,一旦这个集合被构建,我不再希望它是可变的.
从可变映射返回不可变映射的首选Scala方法是什么?通常情况下,我做了一个myMap.toMap显然有用但有气味的.或者,您可以设置scala.collection.Map不需要构建新集合的返回类型,但似乎可能会使读者感到困惑.
谢谢你的回复.
最好的方法是打电话.toMap.它简短,干净,并且明确表示您希望将您的收藏转换为immutable.Map.
我认为将类型设置为scala.collection.Map确实会令人困惑.它也不会保护您免受某人设置类型的影响.使类型immutable.Map清晰,安全.
我不确定你为什么会想到.toMap气味,但是如果你想要明确的话collection.immutable.Map() ++ myMap应该清楚地记录正在发生的事情.(不要忘记();它们不是可选的.)
简单地改变返回类型并不能完全解决不变性问题; 变异方法不再可见,但用户可以轻松地退回.然而,这是最高性能的方法,因为没有什么是真正改变的.
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |