我知道函数式风格更喜欢可变的 var 或 val 列表,我理解为什么,但我正在考虑纯粹的时间/空间权衡。
我目前正在与一个 java 库进行交互,并且无论如何都必须在 scala 中编写大量非 idomatic 代码。
我知道函数式风格更喜欢可变的 var 或 val 列表,我理解为什么,但我正在考虑纯粹的时间/空间权衡。
我目前正在与一个 java 库进行交互,并且无论如何都必须在 scala 中编写大量非 idomatic 代码。
也许有几个指针可以帮助您理解,为什么在使用不可变结构时没有那么大的惩罚:
在我看来,不可变列表的最大用途是,如果您在对象之间共享它们,就没有副作用。如果您开始使用并发性甚至并行性,这一点很重要。
顺便说一句:Scala 使用 Builder 来更改现有的列表并“回收”以前的列表,因此这并不像您预期的那样昂贵。
编辑
当我现在让您获得基准时,我发现这个非常好,因为它们显示了他们使用的代码。