Il y a quelque chose que je ne comprends pas à propos de la collection.mutable.Seq
de Scala. Il décrit l’interface pour toutes les séquences mutables, mais je ne vois pas de méthodes pour append ou append des éléments sans créer une nouvelle séquence. Est-ce que je manque quelque chose de évident ici?
Il y a :+
et +:
pour append et prepend, respectivement, mais ils créent de nouvelles collections – pour ê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 les ArrayBuffer
et les ListBuffer
sur place? Est-ce que cela signifie que je ne peux pas me référer à un seq mutable qui est typé collection.mutable.Seq
si je veux faire une place sur place?
Encore une fois, je dois avoir manqué quelque chose d’évident, mais je ne peux pas trouver quoi…
La mutabilité des séquences garantit uniquement que vous pourrez échanger les éléments pour différents (via la méthode de update
), comme vous pouvez le faire avec, par exemple, les tableaux primitifs. Cela ne garantit pas que vous serez capable de rendre la séquence plus grande (c’est ce à quoi Growable
caractère Growable
) ou plus petite ( Shrinkable
).
Buffer
est le trait abstrait qui contient Growable
et Shrinkable
, pas Seq
.