Avatar ·

Go में null/nil क्या है और इसके साथ कैसे काम करें?

सभी को नमस्कार! मैंने Go सीखना शुरू किया है और nil की अवधारणा से सामना हुआ। अन्य भाषाओं (जैसे Java या JavaScript) में null होता है, जो अक्सर त्रुटियाँ (NullPointerException) उत्पन्न करता है। Go में, जैसा कि मैंने समझा, nil का उपयोग होता है, लेकिन व्यवहार अलग है।

यहाँ मैंने जो प्रयास किया:

package main\n\nimport "fmt"\n\nfunc main() {\n    var p *int\n    fmt.Println(p) // nil प्रिंट करता है\n    // fmt.Println(*p) // panic: runtime error: invalid memory address or nil pointer dereference\n    \n    var s []int\n    fmt.Println(s == nil) // true\n    fmt.Println(len(s))   // 0\n    // s[0] = 1 // panic\n    \n    var m map[string]int\n    fmt.Println(m == nil) // true\n    // m["key"] = 1 // panic\n}\n

प्रश्न:

  1. Go में nil स्वचालित रूप से खाली संरचनाएँ क्यों नहीं बनाता (कुछ भाषाओं में null के विपरीत)?
  2. पॉइंटर्स, स्लाइस और मैप्स का उपयोग करने से पहले nil की जाँच सही तरीके से कैसे करें?