Нет изменяемого списка Scala - PullRequest
11 голосов
/ 15 июля 2011

В Scala есть изменяемая и неизменная карта, но есть только неизменный список.Если вам нужен изменяемый список, вам нужен ListBuffer.

Я не понимаю, почему это так.Кто-нибудь знает?

Ответы [ 4 ]

18 голосов
/ 15 июля 2011

Вы можете выбрать один из следующих вариантов:

Итак, да, у Scala есть изменяемые списки: -)

6 голосов
/ 15 июля 2011

Я надеюсь, что эта статья будет вам полезна.Диаграмма внизу страницы особенно полезна для предоставления изменчивых и неизменяемых классов.

http://www.scala -lang.org / document / files / collection-api / collection_1.html

3 голосов
/ 15 июля 2011

Существует изменяемый List, но он называется Buffer.Статья, на которую ссылается Грэм, углубляется, но я подумал, что на этот вопрос тоже должен быть конкретный ответ.

0 голосов
/ 15 июня 2012

Map - это trait - подобно Java interface -, в то время как List - это class, конкретная реализация Seq.Существуют изменяемые и неизменяемые Seq, как и для Map.

. Это может сбивать с толку программистов на Java, поскольку в Java List является interface, чьи (основные) реализации ArrayList и LinkedList.Увы, именование Java ужасно.Во-первых, ArrayList - это не List для любой сферы воображения.Кроме того, в интерфейсе есть методы, которые на самом деле не связаны ни с одним традиционным списком.

Так что, если вам нужна изменчивая / неизменная эквивалентность, посмотрите на конкретные реализации подкласса Seq.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...