Scala 没有可变列表

Scala 没有可变列表,scala,immutability,mutable,Scala,Immutability,Mutable,Scala既有可变映射,也有不可变映射, 但它只有一个不变的列表。 如果你想要一个可变列表,你需要一个ListBuffer 我不明白为什么会这样。 有人知道吗 我希望这篇文章能对你有所帮助。页面底部的图表在提供可变和不可变类时特别有用 有一个可变的列表,但它被称为。格雷厄姆链接的文章更深入,但我认为这个问题也应该有一个具体的答案。你可以从以下两个方面进行选择: 因此,是的,Scala有可变列表:-)映射是一种特性——就像Java的接口一样,列表是一个类,是Seq的具体实现。有可变和不

Scala既有可变映射,也有不可变映射, 但它只有一个不变的列表。 如果你想要一个可变列表,你需要一个ListBuffer

我不明白为什么会这样。
有人知道吗

我希望这篇文章能对你有所帮助。页面底部的图表在提供可变和不可变类时特别有用


有一个可变的
列表
,但它被称为。格雷厄姆链接的文章更深入,但我认为这个问题也应该有一个具体的答案。

你可以从以下两个方面进行选择:


因此,是的,Scala有可变列表:-)

映射
是一种
特性
——就像Java的
接口一样,
列表
是一个
,是
Seq
的具体实现。有可变和不可变的
Seq
,就像
Map
一样

这可能会让Java程序员感到困惑,因为在Java中,
List
是一个
接口
,其(主要)实现是
ArrayList
LinkedList
。唉,Java命名太糟糕了。首先,
ArrayList
不是任何想象中的
列表。此外,该接口具有与任何传统列表都不相关的方法


因此,如果你想要可变/不可变的等价性,那么看看
Seq

的具体子类实现,是不是有一个?
List
在计算机科学中有一个非常具体的含义,Scala遵循了这个含义(而不是继续Java滥用这个术语:-D)。这是一个重复,但遗憾的是,Jean-Philippe Pellet接受的答案更直接,给了你一些类,你可以在代码中加入这些类来解决你的问题。然而,格雷厄姆实际上回答了你的问题:“为什么会这样?”。我希望您能阅读他提供的链接,因为它将帮助您更好地理解Scala中可变和不可变集合背后的思想