如何附加或前置Scala mutable.Seq

时间:2011-07-08 14:52:49

标签: scala sequence scala-collections mutable

关于Scala的collection.mutable.Seq,我有些不明白的地方。它描述了所有可变序列的接口,但是我没有看到在不创建新序列的情况下附加或前置元素的方法。我错过了一些明显的东西吗?

分别有:++:用于追加和前置,但它们创建了新的集合 - 为了与不可变序列的行为一致,我假设。这很好,但是为什么没有像+=+=:这样的方法,如ArrayBufferListBuffer定义,用于就地追加和前置?这是否意味着如果我想进行就地追加,我不能引用一个类型为collection.mutable.Seq的可变seq?

同样,我一定错过了一些明显的东西,却找不到什么...

1 个答案:

答案 0 :(得分:77)

仅序列的可变性保证您可以将项目替换为不同的项目(通过update方法),就像您可以使用原始数组。 确保您能够使序列变大(Growable特征的含义)或更小(Shrinkable)。

Buffer是包含GrowableShrinkable的抽象特征,而不是Seq