आप में उस दृश्य को जानते हैं अलविदा और सभी मछली के लिए धन्यवाद जहां आर्थर इतनी प्रसन्नता से खुश है कि वह एक वेटर को रोकता है और जानना चाहता है, "यह खाना इतना अच्छा क्यों है?" मैं उस स्थिति में हूं। ऐसा लगता है कि स्कैला ठीक वही कर रहा है जो मैं चाहता हूं, लेकिन मुझे समझ में नहीं आता कि यह कैसा चल रहा है। निम्नलिखित पर विचार करें:मैं एक नील सूची कैसे संशोधित कर सकता हूं?
scala> var v = Nil:List[String];
v: List[String] = List()
scala> v.length
res38: Int = 0
scala> v ::= "Hello"
scala> v.length
res39: Int = 1
scala> Nil.length
res40: Int = 0
जो वास्तव में आप उम्मीद करेंगे, लेकिन यह कैसे हो रहा है?
नील एक वस्तु है जो सूची [कुछ भी नहीं] का विस्तार करती है, जो सूची [स्ट्रिंग] का एक उप प्रकार है, इसलिए असाइनमेंट ठीक काम करता है, लेकिन यह अपरिवर्तनीय सूची है, है ना? इसलिए मुझे इसमें शामिल नहीं होना चाहिए। लेकिन मैं इसमें शामिल हो सकता हूं, या कम से कम मैं वी में शामिल हो सकता हूं, जिसे मैंने नील को इंगित किया था। वी बदल गया है, लेकिन नील नहीं है।
तो, डब्ल्यूटीएफ? क्या स्कैला में कुछ चालाक प्रति-संशोधित अर्थशास्त्र है, मुझे अनजान है? क्या नील वास्तव में एक समारोह है जो खाली सूचियां देता है? अधिक व्यापक रूप से, क्या कोई तरीका है कि मैं आरईपीएल इन सवालों के जवाब दे सकता था?