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…
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
.