如何在 Scala mutable.Seq 上附加或前置

Posted

技术标签:

【中文标题】如何在 Scala mutable.Seq 上附加或前置【英文标题】:How to append or prepend on a Scala mutable.Seq 【发布时间】:2011-10-01 08:37:02 【问题描述】:

关于 Scala 的 collection.mutable.Seq,我有些不明白。它描述了所有可变序列的接口,但我看不到在不创建新序列的情况下追加或前置元素的方法。我在这里遗漏了什么明显的东西吗?

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

再一次,我一定错过了一些明显的东西,但找不到什么……

【问题讨论】:

【参考方案1】:

序列的可变性保证您能够将项目换成不同的项目(通过update 方法),就像您可以使用例如原始数组。它确实保证您能够使序列更大(这就是Growable 特征的用途)或更小(Shrinkable)。

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

【讨论】:

现在一切都说得通了!这是我错过的明显部分。谢谢! 哦。我想知道这是否真的对任何人有用。

以上是关于如何在 Scala mutable.Seq 上附加或前置的主要内容,如果未能解决你的问题,请参考以下文章

Scala类参数化中附加冒号的含义

如何在scala中的另一个数组中使用一个数组,以便使用一个数组中的每个元素附加到另一个数组中的相应元素?

在 IntelliJ IDEA 中为 scala 项目附加源

Scala:将元素附加到数组的最佳方法是啥?

scala 将元组解包到案例类参数和附加的 zip 两个序列中

为啥交叉构建约定将 scala 版本附加到 artifactId?