1. वेरिएबल और स्थिरांक

गोलांग में, वेरिएबल और स्थिरांक एक प्रोग्राम में बहुत महत्वपूर्ण भूमिका निभाते हैं। वेरिएबल एक नामित पहचानकर्ता होता है जिसका उपयोग प्रोग्राम में डेटा स्टोर करने के लिए किया जाता है। गोलांग में, वेरिएबल घोषित करने के लिए var कीवर्ड का उपयोग किया जाता है। स्थिरांक एक पहचानकर्ता होता है जिसका मान प्रोग्राम में बदला नहीं जा सकता है। गोलांग में, स्थिरांक घोषित करने के लिए const कीवर्ड का उपयोग किया जाता है।

2 गोलांग वेरिएबल की घोषणा और प्रारंभीकरण

2.1 एकल वेरिएबल की घोषणा और प्रिदान

गो भाषा में, var कीवर्ड का उपयोग वेरिएबल की घोषणा के लिए var वेरिएबल_नाम टाइप के प्रारूप का उपयोग होता है। घोषणा के बाद, वेरिएबल को आगे के कोड में एक मान प्रार्थन किया जा सकता है, या यह सीधे प्रारंभिकरित किया जा सकता है। उदाहरण के लिए:

var age int // एक पूर्णांक वेरिएबल उम्र की घोषणा करें
age = 25    // वेरिएबल को एक मान दें

var name string = "Alice" // वेरिएबल नाम की घोषणा और प्रारंभीकरण करें

2.2 एकाधिक वेरिएबल की घोषणा

गो भाषा में, कई वेरिएबलों की समकालिक घोषणा का समर्थन किया जाता है, जिससे कोड को संक्षेपित किया जा सकता है। बल्क घोषणा सामान्यत: किसी फ़ंक्शन की शुरुआत में या पैकेज स्तर पर की जाती है। उदाहरण के लिए:

var (
    firstName, lastName string
    age                 int
)

firstName = "John"
lastName = "Doe"
age = 30

उपर्युक्त बल्क घोषणा में, firstName और lastName को स्ट्रिंग के रूप में घोषित किया गया है, जबकि age एक पूर्णांक है।

2.3 प्रकारँनाधार और छोटा वेरिएबल घोषणा

गो भाषा में, वेरिएबल के प्रकार को स्पष्ट रूप से निर्दिष्ट करना हमेशा आवश्यक नहीं होता है। यदि वेरिएबल की घोषणा करते समय एक प्रारंभिक अभिव्यक्ति प्रदान की जाती है, तो गो वेरिएबल के प्रकार को प्रारभिकरण अभिव्यक्ति से निर्धारित कर सकता है। इसे प्रकारँनाधार के रूप में जाना जाता है। := का उपयोग करके छोटे वेरिएबल घोषणा, प्रकारँनाधार का उपयोग कर सकती है जिससे प्रकारँनाधार का उपयोग करके वेरिएबल को समकालिक रूप से घोषित और प्रारंभित किया जा सकता है। उदाहरण के लिए:

city := "दिल्ली" // city को समकालिक रूप से घोषित और प्रारंभित करने के लिए छोटे वेरिएबल घोषणा का उपयोग
country := "भारत" // country को स्ट्रिंग प्रकार के रूप में सम्वियत किया गया है

ध्यान देने योग्य है कि छोटे वेरिएबल घोषणाएँ केवल फ़ंक्शन के भीतर ही किए जा सकते हैं और इन्हें ग्लोबल स्तर पर उपयोग नहीं किया जा सकता है।

2.4 वेरिएबल घोषणा फ़ंक्शन के बाहर

फ़ंक्शन के बाहर घोषित वेरिएबलों का पैकेज-स्तर क्षेत्र होता है। इन वेरिएबलों को पूरे पैकेज के दौरान दिखाई और पहुँचने योग्य होता है। उदाहरण के लिए:

var globalVar string = "मैं ग्लोबल हूँ" // एक ग्लोबल वेरिएबल की घोषणा

func printGlobalVar() {
    fmt.Println(globalVar) // फ़ंक्शन के भीतर ग्लोबल वेरिएबल तक पहुँच
}

ग्लोबल वेरिएबल्स पैकेज के भीतर किसी भी फ़ंक्शन के बीच साझा किए जा सकते हैं, लेकिन संभावित नामकरण संघर्ष और अस्पष्ट संदर्भों से बचने के लिए सावधानीपूर्वक उपयोग करना चाहिए।

सुझाव: यहां बुनियादी फ़ंक्शन परिचय को समझना पर्याप्त है, फ़ंक्शन का विस्तृत विवरण बाद के खंडों में प्रदान किया जाएगा।

3 मूल डेटा प्रकार और शून्य मान

3.1 गोलेंग में मूल डेटा प्रकार

गोलेंग में, प्रत्येक प्रकार का वेरिएबल विशेष शब्दार्थ और व्यवहारिक लक्षण प्रदान करता है। यहां कुछ सामान्य मूल डेटा प्रकार हैं:

  • int, int8, int16, int32, int64: पूर्णांकों की विभिन्न सीमाएँ
  • uint, uint8, uint16, uint32, uint64: अपसाइन्ड पूर्णांक
  • float32, float64: फ़्लोटिंग-पॉइंट संख्याएँ
  • bool: बूलियन मान (सही या ग़लत)
  • string: स्त्रिंग्स

3.2 शून्य मान की अवधारणा

गो भाषा में, घोषणा के बाद वेरिएबल्स को स्वचालित रूप से उनके प्रकार के शून्य मान में प्रारंभित किया जाता है। शून्य मान से तात्पर्य उस प्रकार के डिफ़ॉल्ट मान से होता है जब वेरिएबल को स्पष्ट रूप से प्रारंभिकृत नहीं किया गया होता है। यह कुछ अन्य भाषाओं में सामान्य नहीं है, लेकिन गो में, यह सुनिश्चित करता है कि सभी वेरिएबल्स के पास हमेशा एक मान होता है। यहां हर मूल डेटा प्रकार के शून्य मान है:

  • पूर्णांक का शून्य मान 0 होता है
  • फ़्लोटिंग-पॉइंट संख्या का शून्य मान 0.0 होता है
  • बूलियन का शून्य मान ग़लत होता है
  • स्ट्रिंग का शून्य मान एक खाली स्त्रिंग "" होता है

उदाहरण के लिए:

var i int     // शून्य मान 0 है
var f float64 // शून्य मान 0.0 है
var b bool    // शून्य मान ग़लत है
var s string  // शून्य मान "" है

शून्य मान की अवधारणा को समझना बहुत महत्वपूर्ण है, क्योंकि यह विकसकों को वेरिएबल प्रारंभ करने के व्यवहार को समझने में सहायक हो सकती है और नल पॉइंटर या अप्रारंभित त्रुटियों से बचाया जा सकता है।

4. वेरिएबल के क्षेत्र

4.1 स्थानीय परिवर्तन

स्थानीय परिवर्तन एक फ़ंक्शन के भीतर परिभाषित किए जाने वाले परिवर्तन होते हैं, और उन्हें केवल उस फ़ंक्शन के भीतर ही एक्सेस किया जा सकता है। फ़ंक्शन पैरामीटर भी स्थानीय परिवर्तन माने जाते हैं। जब वे बनाए जाते हैं, तब से लेकर फ़ंक्शन का निष्पादन पूरा होने तक, स्थानीय परिवर्तन गायब हो जाएंगे। हर बार जब फ़ंक्शन को कॉल किया जाता है, स्थानीय परिवर्तन पुनः बनाए जाते हैं।

func localVariableExample() {
    var localVariable int = 10 // यह एक स्थानीय परिवर्तन है
    fmt.Println(localVariable)
}

func main() {
    localVariableExample() // आउटपुट: 10
    // fmt.Println(localVariable) // यहां लोकल परिवर्तन दृश्यमान नहीं है, इसलिए यह एक कॉम्पाइल त्रुटि का कारण होगा
}

उपरोक्त उदाहरण में, localVariable केवल localVariableExample फ़ंक्शन के भीतर ही एक्सेस किया जा सकता है।

4.2 वैश्विक परिवर्तन

वैश्विक परिवर्तन फ़ंक्शनों के बाहर परिभाषित किए जाने वाले परिवर्तन होते हैं, और वे एक ही पैकेज के किसी भी फ़ाइल में एक्स