如何在 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,但它们创建了新的集合——为了与不可变序列的行为保持一致,我假设。这很好,但为什么没有像+=
和+=:
这样的方法,比如ArrayBuffer
和ListBuffer
定义,用于就地追加和前置?这是否意味着如果我想就地追加,我不能引用键入为collection.mutable.Seq
的可变序列?
再一次,我一定错过了一些明显的东西,但找不到什么……
【问题讨论】:
【参考方案1】:序列的可变性仅保证您能够将项目换成不同的项目(通过update
方法),就像您可以使用例如原始数组。它确实不保证您能够使序列更大(这就是Growable
特征的用途)或更小(Shrinkable
)。
Buffer
是包含Growable
和Shrinkable
的抽象特征,而不是Seq
。
【讨论】:
现在一切都说得通了!这是我错过的明显部分。谢谢! 哦。我想知道这是否真的对任何人有用。以上是关于如何在 Scala mutable.Seq 上附加或前置的主要内容,如果未能解决你的问题,请参考以下文章
如何在scala中的另一个数组中使用一个数组,以便使用一个数组中的每个元素附加到另一个数组中的相应元素?
在 IntelliJ IDEA 中为 scala 项目附加源