gpt4 book ai didi

scala - Scala 拥有 "const classes"a la Fantom 的障碍是什么?

转载 作者:行者123 更新时间:2023-12-04 10:26:28 24 4
gpt4 key购买 nike

Fantom 支持 provably immutable类。知道一个类是不可变的,编译器的优点必须很多,其中最重要的是可以保证在 actor 之间传递的消息是不可变的。 Fantom 的方法看起来很简单——它会给 Scala 带来什么困难?

最佳答案

Scala 方面对跟踪副作用更感兴趣,这是一个比简单的不变性更难的命题。

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

一个这样的例子是 List的子类 :: (构成列表中除空列表之外的所有内容的类),其中 head 的字段和 tail实际上是可变的。这样做是为了使 List可以按 FIFO 顺序高效组合 -- 参见 ListBuffer和它的 toList方法。

无论如何,虽然保证不变性会很有趣,但这些东西实际上更像是一种语言的产物,其中可变性是默认的。根据我的经验,在 Scala 中编程时,它不会成为实际问题。

关于scala - Scala 拥有 "const classes"a la Fantom 的障碍是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14877074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com