खोज…


टिप्पणियों

ध्यान देने वाली एक बात - ऐसे प्रकार जिनके स्ट्रिंग, इन्टस, फ्लोट्स, बूल्स और स्ट्रक्चर्स जैसे गैर-शून्य शून्य मान होता है, उन्हें शून्य पर सेट नहीं किया जा सकता है।

मूल शून्य मान

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

var myString string      // "" - an empty string
var myInt int64          // 0 - applies to all types of int and uint
var myFloat float64      // 0.0 - applies to all types of float and complex
var myBool bool          // false
var myPointer *string    // nil
var myInter interface{}  // nil

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

अधिक जटिल शून्य मान

स्लाइस में शून्य मान एक खाली टुकड़ा है।

var myIntSlice []int    // [] - an empty slice

मानों से आबाद एक स्लाइस make लिए उपयोग करें, स्लाइस में बनाए गए किसी भी मान को स्लाइस के प्रकार के शून्य मान पर सेट किया जाता है। उदाहरण के लिए:

myIntSlice := make([]int, 5)    // [0, 0, 0, 0, 0] - a slice with 5 zeroes
fmt.Println(myIntSlice[3])
// Prints 0

इस उदाहरण में, myIntSlice एक int slice है जिसमें 5 तत्व हैं जो सभी 0 हैं क्योंकि यह प्रकार int लिए शून्य मान है।

आप new साथ एक स्लाइस भी बना सकते हैं, यह एक स्लाइस को पॉइंटर बनाएगा।

myIntSlice := new([]int)        // &[] - a pointer to an empty slice
*myIntSlice = make([]int, 5)    // [0, 0, 0, 0, 0] - a slice with 5 zeroes
fmt.Println((*myIntSlice)[3])
// Prints 0

नोट: स्लाइस पॉइंटर्स इंडेक्सिंग का समर्थन नहीं करते हैं, इसलिए आप myIntSlice[3] का उपयोग करके मूल्यों तक नहीं पहुंच सकते हैं, इसके बजाय आपको इसे करने की आवश्यकता है (*myIntSlice)[3]

संरचना शून्य मान

इसे शुरू किए बिना एक संरचना बनाते समय, संरचना के प्रत्येक क्षेत्र को इसके संबंधित शून्य मूल्य के लिए प्रारंभ किया जाता है।

type ZeroStruct struct {
    myString string
    myInt    int64
    myBool   bool
}

func main() {
    var myZero = ZeroStruct{}
    fmt.Printf("Zero values are: %q, %d, %t\n", myZero.myString, myZero.myInt, myZero.myBool)
    // Prints "Zero values are: "", 0, false"
}

अर्रे शून्य मान

गो ब्लॉग के अनुसार:

एरे को स्पष्ट रूप से आरंभ करने की आवश्यकता नहीं है; किसी सरणी का शून्य मान एक रेडी-टू-यूज़ सरणी है, जिसके तत्व स्वयं शून्य हैं

उदाहरण के लिए, myIntArray को int के शून्य मान से आरंभ किया गया है, जो कि 0 है:

var myIntArray [5]int     // an array of five 0's: [0, 0, 0, 0, 0]


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow