没有Scala可变列表

时间:2011-07-15 11:03:09

标签: scala immutability mutable

Scala有一个可变的和一个不可变的Map, 但它只有一个不可变的List。 如果你想要一个可变列表,你需要一个ListBuffer。

我不明白为什么会这样。 有谁知道?。

4 个答案:

答案 0 :(得分:18)

答案 1 :(得分:6)

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

http://www.scala-lang.org/docu/files/collections-api/collections_1.html

答案 2 :(得分:3)

有一个可变的List,但它被称为Buffer。格雷厄姆关联的文章更深入,但我认为这个问题应该有一个具体的答案。

答案 3 :(得分:0)

Maptrait - 与Java interface一样 - 而Listclass,是Seq的具体实现}。有可变且不可变的Seq,就像Map一样。

这可能让Java程序员感到困惑,因为在Java中,Listinterface,其(主要)实现是ArrayListLinkedList。唉,Java命名是残暴的。首先,ArrayList在任何想象中都不是List。此外,该接口的方法与任何传统列表都不相关。

因此,如果您想要可变/不可变等价,请查看Seq的具体子类实现。