web-dev-qa-db-fra.com

Comment ajouter ou pré-ajouter sur un Scala mutable.Seq

Il y a quelque chose que je ne comprends pas chez Scala collection.mutable.Seq . Il décrit l'interface de toutes les séquences mutables, mais je ne vois pas de méthodes pour ajouter ou ajouter des éléments sans créer de nouvelle séquence. Suis-je en train de manquer quelque chose d'évident ici?

Il y a :+ et +: pour append et prepend, respectivement, mais ils créent de nouvelles collections - afin d'être cohérent avec le comportement des séquences immuables, je suppose. C'est bien, mais pourquoi n'y a-t-il pas de méthode comme += et +=:, comme ArrayBuffer et ListBuffer définissent, pour l'ajout et le préfixe sur place? Cela signifie-t-il que je ne peux pas faire référence à une séquence modifiable qui est tapée comme collection.mutable.Seq si je veux faire l'ajout sur place?

Encore une fois, j'ai dû manquer quelque chose d'évident, mais je ne trouve pas quoi…

49

La mutabilité des séquences uniquement garantit que vous pourrez échanger les éléments contre des éléments différents (via la méthode update), comme vous pouvez par exemple tableaux primitifs. Cela ne garantit pas que vous serez en mesure d'agrandir la séquence (c'est ce que le Growable trait est pour) ou plus petit ( Shrinkable ).

Buffer est le trait abstrait qui contient Growable et Shrinkable, pas Seq .

77
Rex Kerr