美文网首页Scala知识传播
val-mutable 和 var-imuatble 如何选择

val-mutable 和 var-imuatble 如何选择

作者: GuaKin_Huang | 来源:发表于2017-09-22 09:47 被阅读12次

对于 val 修饰的 mutable 类型的数据和 var 修饰的 immutable 类型的数据,两者之间,哪只种方式更安全呢?

这是一个十常见的问题,难的是找到两者之间的共同点。

首先,我们应该最大程度遵守引用透明性的原则。那什么是引用透明性呢?也就是说,如果存在一个表达式 e ,对于 val x = e 成立,并且 可以用 x 替代 e ; 这是可变性的特点。无论你什么时候设计一个代码决策,最好能够最大限度地遵守引用透明性的原则。

在实际开发中,对于方法内的 var ,其安全性是最高的,因为它不会逃逸到方法外部,也就不存在更改的可能性。如果实际代码中,并不如此,就尽量将方法分解成副作用最小的方法。

另一方面,一个可变的集合有可能逃脱,即使它没有。在更改代码时,您可能希望将其传递给其他方法,或者返回它。这是一种打破引用透明性的东西。

在一个对象(一个字段)上,如果发生逃逸,会产生更可怕的后果。无论哪种方式,对象都具有状态,因此,打破了引用透明性。但是,拥有一个可变的集合意味着即使对象本身也可能由于被修改而失去对自身状态的控制。

相关文章

  • val-mutable 和 var-imuatble 如何选择

    对于 val 修饰的 mutable 类型的数据和 var 修饰的 immutable 类型的数据,两者之间,哪只...

  • 落地丨教你如何科学的选到性价比高的房子

    如何选择男朋友? 如何选择人生伴侣? 如何买到心仪的房子? 如何选择心仪的学校和专业? 如何选择喜欢的工作?是创业...

  • 家庭的事

    和父母 和媳妇 和媳妇的娘家人 价值观、选择。 矛盾一定会存在,看自己如何认识,如何甄别,如何选择。 做好自己,尽...

  • 如何选择和取舍

    2022年1月3日 星期一 晴 当我们个人的成长、选择和家里的期望产生矛盾的时候,我们该如何选择和取舍呢?这个...

  • 你们才是自己存在的中心

    意识的方向和选择的频率会决定你如何感觉、如何思考、如何行动。

  • 基金实战营/第五课

    第5课 如何选择基金? 五,如何选择-债券型基金 为什么个人投资者要选择债券基金 1. 股票和债券风险有对冲...

  • 如何鉴别和选择印章

    书法作品上的印章,是书法作品中不可缺少的组成部分,缺了印章就不成为完整的书法作品。印章最初是信物,起印证作用。宋、...

  • 如何选择和阅读译本

    最近又借了一本书,很火的推荐作品《乌合之众》,大众心理学研究著作,法国作家所写。 想到上次借书还是在寒假前,借了一...

  • 如何 选择、甄别和取舍

    细心的朋友肯定发现了,这三条里面都包含着同一个问题,如何选择甄别和取舍。 有一部电影,讲的是男主人公临终前,天使出...

  • 创业和工作,如何选择?

    创业是一条不归路,创业要求有极强的抗压能力和自控能力,当你的积蓄已经无法支撑下月工资的时候; 当你拼命到尿血了,业...

网友评论

    本文标题:val-mutable 和 var-imuatble 如何选择

    本文链接:https://www.haomeiwen.com/subject/abbxextx.html