除了或多或少的功能之外,在使用 var List 或 val mutable 时有什么权衡.列表



我知道函数式风格更喜欢可变的var或val列表,我明白为什么,但我正在考虑纯粹的时间/空间权衡。

我目前正在与Java库接口,无论如何都必须在scala中编写大量非偶像代码。

也许有几个指针可以帮助你理解,为什么当你使用不可变结构时没有那么大的惩罚:

  • 斯卡拉集合的性能特征表。
  • Extreme Csmartness: Functional Data Structures in Scala (一个关于不可变数据结构的相当长但非常有趣的视频)

在我的oppinon中,不可变列表的最大用途是,如果您在对象之间共享它们,则没有副作用。如果您开始使用并发甚至平行主义,这一点很重要。

顺便说一下:Scala使用Builder来更改现有的列表并"回收"以前的列表,所以这并不像你想象的那么昂贵。

编辑

当我让你现在得到基准测试时,我发现这个非常好,因为它们显示了他们使用的代码。

最新更新