关于Scala的collection.mutable.Seq
,我有些不明白的地方。它描述了所有可变序列的接口,但是我没有看到在不创建新序列的情况下附加或前置元素的方法。我错过了一些明显的东西吗?
分别有:+
和+:
用于追加和前置,但它们创建了新的集合 - 为了与不可变序列的行为一致,我假设。这很好,但是为什么没有像+=
和+=:
这样的方法,如ArrayBuffer
和ListBuffer
定义,用于就地追加和前置?这是否意味着如果我想进行就地追加,我不能引用一个类型为collection.mutable.Seq
的可变seq?
同样,我一定错过了一些明显的东西,却找不到什么...
答案 0 :(得分:77)
仅序列的可变性保证您可以将项目替换为不同的项目(通过update
方法),就像您可以使用原始数组。 不确保您能够使序列变大(Growable
特征的含义)或更小(Shrinkable
)。