स्काला में सूचियों को संशोधित करने के लिए डिज़ाइन नहीं किया गया है। वास्तव में, आप तत्वों को स्केल में नहीं जोड़ सकते हैं List
; यह जावा स्ट्रिंग की तरह एक अपरिवर्तनीय डेटा संरचना है । जब आप स्काला में "एक सूची में एक तत्व जोड़ते हैं" तब आप वास्तव में क्या करते हैं , एक मौजूदा सूची से एक नई सूची बनाना है । (स्रोत)
ऐसे उपयोग मामलों के लिए सूचियों का उपयोग करने के बजाय, मैं या तो ArrayBuffer
a या a का उपयोग करने का सुझाव देता हूं 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
हैListBuffer
कि तत्व में बदल दिया गया है , तत्व को जोड़ दिया गया है, औरListBuffer
परिवर्तित पीठ (बहुत पसंद हैString
औरStringBuilder
जावा में), लेकिन यह सिर्फ एक अनुमान है।