简体   繁体   中英

How to append or prepend on a Scala mutable.Seq

There's something I don't understand about Scala's collection.mutable.Seq . It describes the interface for all mutable sequences, yet I don't see methods to append or prepend elements without creating a new sequence. Am I missing something obvious here?

There are :+ and +: for append and prepend, respectively, but they create new collections — in order to be consistent with the behavior of immutable sequences, I assume. This is fine, but why is there no method like += and +=: , like ArrayBuffer and ListBuffer define, for in-place append and prepend? Does it mean that I cannot refer to a mutable seq that's typed as collection.mutable.Seq if I want to do in-place append?

Again, I must have missed something obvious, but cannot find what…

Mutability for sequences only guarantees that you'll be able to swap out the items for different ones (via the update method), as you can with eg primitive arrays. It does not guarantee that you'll be able to make the sequence larger (that's what the Growable trait is for) or smaller ( Shrinkable ).

Buffer is the abstract trait that contains Growable and Shrinkable , not Seq .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM