Как добавить или добавить на Scala mutable.Seq - PullRequest
49 голосов
/ 08 июля 2011

Есть кое-что, чего я не понимаю в Скале collection.mutable.Seq.Он описывает интерфейс для всех изменяемых последовательностей, но я не вижу методов для добавления или добавления элементов без создания новой последовательности.Я что-то упускаю здесь очевидное?

Есть :+ и +: для добавления и добавления, соответственно, но они создают новые коллекции - для того, чтобы соответствовать поведению неизменяемых последовательностей, я полагаю.Это хорошо, но почему нет таких методов, как += и +=:, таких как ArrayBuffer и ListBuffer define, для добавления и добавления на месте?Означает ли это, что я не могу ссылаться на изменяемый seq, который набирается как collection.mutable.Seq, если я хочу добавить на месте?

Опять же, я, должно быть, пропустил что-то очевидное, но не могу найти то, что ...

1 Ответ

77 голосов
/ 08 июля 2011

Изменчивость для последовательностей только гарантирует, что вы сможете поменять элементы на разные (с помощью метода update), как вы можете, например, с помощью. примитивные массивы. не гарантирует, что вы сможете увеличить последовательность (для этого нужна черта Growable) или меньше (Shrinkable ).

Buffer - это абстрактная черта, которая содержит Growable и Shrinkable, а не Seq.

...