首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala像幻影一样拥有"const类“的障碍是什么?

Scala像幻影一样拥有"const类“的障碍是什么?
EN

Stack Overflow用户
提问于 2013-02-14 22:31:02
回答 2查看 139关注 0票数 7

Fantom支持provably immutable类。编译器知道一个类是不可变的,这肯定有很多好处,其中最重要的是要保证在参与者之间传递的消息是不可变的。Fantom的方法看起来很简单--它会给Scala带来什么困难?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-14 22:59:23

Scala对跟踪副作用有更多的兴趣,这是一个更难的命题,而不是简单的不变性。

不可变性本身并不像引用透明性那样重要,事实上,Scala的一些不可变集合在“被证明是不可变的”测试中不会通过集合,因为它们实际上不是。就任何人从外部观察而言,它们都是不可变的,但它们具有用于各种目的的可变字段。

一个这样的例子是List的子类:: (这个类组成了列表中除空列表之外的所有内容),其中headtail的字段实际上是可变的,这样就可以按照先进先出的顺序有效地组合List --参见ListBuffer及其toList方法。

无论如何,虽然保证不变性是一件很有趣的事情,但这类事情实际上更多的是可变性是缺省的语言的产物。根据我的经验,在用Scala编程时,这并不是一个实际的问题。

票数 12
EN

Stack Overflow用户

发布于 2013-02-14 22:59:53

虽然该方法可能很简单,

  1. 它的保证可以通过反思来打破;
  2. 它需要相当多的努力,Scala团队可能会认为这不值得,或者不是优先考虑的。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14877074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档