【发布时间】:2019-08-19 14:43:38
【问题描述】:
我有一个var 变量与immutable.ListMap 类型的简单用法。不幸的是,项目的代码复杂性并没有给我机会将其移至immutable val
在审查时,我收到一条评论,将其更改为 var 变量和 mutable.ListMap。
就像“你已经拥有 var 并且 mutable 不会让事情变得更糟。”
你怎么看?是否有任何性能指标或代码风格禁止使用可变变量?在mutable var 和immutable var 之间选择哪个更好?
我已经阅读了所有的答案
val-mutable versus var-immutable in Scala 并注意到一条获得很多赞的评论:
更喜欢不可变的 val 而不是不可变的 var,而不是可变的 val,而不是可变的 var
该陈述是否有任何证据或解释?
【问题讨论】:
-
你为什么要把它改成
mutable var?我的意思是,您是否需要更改对象 (var) 的引用或改变对象本身 (mutable)?如果你真的需要两者,我建议仔细审查代码的设计。为什么?因为你暴露的突变越多,就越容易破坏,更难推理代码。如果您出于任何原因确实需要可变性,那么请将其保持在尽可能小的范围内。 -
不,我不需要两者,我只是想在审查时考虑一个好的答案,即双重可变性是一个坏主意。
标签: scala immutability var