स्काला - चर

वैरिएबल मूल्यों को संग्रहीत करने के लिए आरक्षित मेमोरी स्थानों के अलावा कुछ भी नहीं हैं। इसका मतलब यह है कि जब आप एक चर बनाते हैं, तो आप मेमोरी में कुछ स्थान आरक्षित करते हैं।

एक चर के डेटा प्रकार के आधार पर, संकलक मेमोरी आवंटित करता है और यह तय करता है कि आरक्षित मेमोरी में क्या संग्रहीत किया जा सकता है। इसलिए, विभिन्न डेटा प्रकारों को चर में निर्दिष्ट करके, आप इन चर में पूर्णांक, दशमलव या वर्ण संग्रहीत कर सकते हैं।

परिवर्तनीय घोषणा

चर घोषित करने के लिए स्काला का एक अलग वाक्यविन्यास है। उन्हें मूल्य के रूप में परिभाषित किया जा सकता है, अर्थात, स्थिर या एक चर। यहां, कीवर्ड संस्करण का उपयोग करके myVar घोषित किया गया है। यह एक चर है जो मूल्य को बदल सकता है और इसे कहा जाता हैmutable variable। निम्नलिखित चर का उपयोग करके परिभाषित करने के लिए वाक्यविन्यास हैvar कीवर्ड -

वाक्य - विन्यास

var myVar : String = "Foo"

यहां, कीवर्ड वैल का उपयोग करके myVal घोषित किया गया है। इसका मतलब है कि यह एक परिवर्तनशील है जिसे बदला नहीं जा सकता है और इसे कहा जाता हैimmutable variable। वैल कीवर्ड का उपयोग करते हुए एक चर को परिभाषित करने के लिए सिंटैक्स निम्नलिखित है -

वाक्य - विन्यास

val myVal : String = "Foo"

चर डेटा प्रकार

एक चर का प्रकार चर नाम के बाद और संकेत के बराबर होने से पहले निर्दिष्ट किया जाता है। आप अपने डेटा प्रकार का उल्लेख करके किसी भी प्रकार के स्काला चर को परिभाषित कर सकते हैं -

वाक्य - विन्यास

val or val VariableName : DataType = [Initial Value]

यदि आप किसी वैरिएबल को कोई प्रारंभिक मान नहीं देते हैं, तो यह निम्नानुसार मान्य है -

वाक्य - विन्यास

var myVar :Int;
val myVal :String;

परिवर्तनीय प्रकार का आविष्कार

जब आप किसी वैरिएबल को एक प्रारंभिक मान देते हैं, तो स्केल कंपाइलर इसके द्वारा दिए गए मान के आधार पर चर के प्रकार का पता लगा सकता है। इसे वेरिएबल टाइप इंट्रेंस कहा जाता है। इसलिए, आप इन परिवर्तनीय घोषणाओं को इस तरह लिख सकते हैं -

वाक्य - विन्यास

var myVar = 10;
val myVal = "Hello, Scala!";

यहां, डिफ़ॉल्ट रूप से, myVar Int प्रकार का होगा और MyVal स्ट्रिंग प्रकार चर बन जाएगा।

एकाधिक कार्य

स्काला कई असाइनमेंट का समर्थन करता है। यदि कोई कोड ब्लॉक या विधि एक टपल लौटाता है (Tuple- विभिन्न प्रकार की वस्तुओं का संग्रह), टपल को एक वैर चर को सौंपा जा सकता है। [Note - हम बाद के अध्यायों में Tuples का अध्ययन करेंगे।]

वाक्य - विन्यास

val (myVar1: Int, myVar2: String) = Pair(40, "Foo")

और प्रकार का अनुमान सही हो जाता है -

वाक्य - विन्यास

val (myVar1, myVar2) = Pair(40, "Foo")

उदाहरण कार्यक्रम

निम्नलिखित एक उदाहरण कार्यक्रम है जो स्काला में चर घोषणा की प्रक्रिया की व्याख्या करता है। यह कार्यक्रम चार चरों की घोषणा करता है - दो चरों को प्रकार की घोषणा के साथ परिभाषित किया जाता है और शेष दो प्रकार बिना घोषणा के होते हैं।

उदाहरण

object Demo {
   def main(args: Array[String]) {
      var myVar :Int = 10;
      val myVal :String = "Hello Scala with datatype declaration.";
      var myVar1 = 20;
      val myVal1 = "Hello Scala new without datatype declaration.";
      
      println(myVar); println(myVal); println(myVar1); 
      println(myVal1);
   }
}

में उपरोक्त कार्यक्रम सहेजें Demo.scala। इस प्रोग्राम को संकलित करने और निष्पादित करने के लिए निम्न कमांड का उपयोग किया जाता है।

आदेश

\>scalac Demo.scala
\>scala Demo

उत्पादन

10
Hello Scala with datatype declaration.
20
Hello Scala without datatype declaration.

चर स्कोप

स्काला में चर के तीन अलग-अलग स्कोप हो सकते हैं जो उस जगह पर निर्भर करते हैं जहां उनका उपयोग किया जा रहा है। वे फ़ील्ड पैरामीटर के रूप में और स्थानीय चर के रूप में मौजूद हो सकते हैं। नीचे प्रत्येक प्रकार के दायरे के बारे में विवरण दिया गया है।

खेत

फ़ील्ड वैरिएबल हैं जो किसी ऑब्जेक्ट से संबंधित हैं। ऑब्जेक्ट में प्रत्येक विधि के अंदर से फ़ील्ड सुलभ हैं। फ़ील्ड के साथ घोषित किए गए एक्सेस मॉडिफायर के आधार पर ऑब्जेक्ट के बाहर फ़ील्ड्स भी सुलभ हो सकते हैं। ऑब्जेक्ट फ़ील्ड परस्पर और अपरिवर्तनीय दोनों प्रकार के हो सकते हैं और दोनों का उपयोग करके परिभाषित किया जा सकता हैvar या val

विधि पैरामीटर्स

विधि पैरामीटर चर हैं, जिनका उपयोग किसी विधि के अंदर मान को पास करने के लिए किया जाता है, जब विधि को बुलाया जाता है। विधि पैरामीटर केवल विधि के अंदर से ही सुलभ हैं, लेकिन पास की गई वस्तुएं बाहर से सुलभ हो सकती हैं, यदि आपके पास विधि के बाहर से वस्तु का संदर्भ है। विधि पैरामीटर हमेशा अपरिवर्तनीय होते हैं जिन्हें द्वारा परिभाषित किया जाता हैval कीवर्ड।

स्थानीय चर

स्थानीय चर एक विधि के अंदर घोषित चर हैं। स्थानीय चर केवल विधि के अंदर से सुलभ होते हैं, लेकिन आपके द्वारा बनाई गई वस्तुएं विधि से बच सकती हैं यदि आप उन्हें विधि से वापस करते हैं। स्थानीय चर दोनों परिवर्तनशील और अपरिवर्तनीय प्रकार हो सकते हैं और दोनों का उपयोग करके परिभाषित किया जा सकता हैvar या val