Danh sách trong Scala không được thiết kế để được sửa đổi. Thực tế, bạn không thể thêm các yếu tố vào Scala List
; đó là một cấu trúc dữ liệu bất biến , giống như Chuỗi Java. Những gì bạn thực sự làm khi bạn "thêm một yếu tố vào danh sách" trong Scala là tạo Danh sách mới từ Danh sách hiện có . (Nguồn)
Thay vì sử dụng danh sách cho các trường hợp sử dụng như vậy, tôi đề nghị sử dụng một ArrayBuffer
hoặc mộtListBuffer
. Những cơ sở dữ liệu được thiết kế để có các yếu tố mới được thêm vào.
Cuối cùng, sau khi tất cả các hoạt động của bạn được thực hiện, bộ đệm sau đó có thể được chuyển đổi thành một danh sách. Xem ví dụ REPL sau:
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
được chuyển đổi thành aListBuffer
, phần tử được nối thêm và phần tử đượcListBuffer
chuyển đổi trở lại (khá giốngString
vàStringBuilder
trong Java), nhưng đó chỉ là dự đoán.