Списки Scala не можуть бути змінені. Насправді ви не можете додати елементи до Scala List
; це незмінна структура даних , як Java String. Те, що ви насправді робите, коли ви "додаєте елемент до списку" в Scala, - це створити новий Список із наявного списку . (Джерело)
Замість використання списків для таких випадків використання я пропоную використовувати ArrayBuffer
або а ListBuffer
. Ці структури даних призначені для додавання нових елементів.
Нарешті, після всіх ваших операцій буфер потім може бути перетворений у список. Дивіться наступний приклад REPL:
scala> import scala.collection.mutable.ListBuffer
import scala.collection.mutable.ListBuffer
scala> var fruits = new ListBuffer[String]()
fruits: scala.collection.mutable.ListBuffer[String] = ListBuffer()
scala> fruits += "Apple"
res0: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple)
scala> fruits += "Banana"
res1: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple, Banana)
scala> fruits += "Orange"
res2: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple, Banana, Orange)
scala> val fruitsList = fruits.toList
fruitsList: List[String] = List(Apple, Banana, Orange)
List
перетворюється на aListBuffer
, додається елемент іListBuffer
повертається назад (майже якString
іStringBuilder
в Java), але це лише здогадка.