Go में nil की जाँच कैसे करें: इंटरफ़ेस, स्ट्रक्चर और पॉइंटर्स
नमस्ते साथियों! मैं एक शुरुआती Go-डेवलपर हूँ और nil की जाँच करते समय एक बहुत ही अजीब समस्या का सामना करना पड़ा। मेरे पास एक फंक्शन है जो error इंटरफ़ेस लौटाता है, और मैं यह जाँचने की कोशिश कर रहा हूँ कि कोई त्रुटि हुई है या नहीं। लेकिन मेरा कोड अप्रत्याशित व्यवहार करता है।
यहाँ एक सरल उदाहरण है:
```go
type MyError struct {
Code int
Msg string
}
func (e *MyError) Error() string {
return fmt.Sprintf("error %d: %s", e.Code, e.Msg)
}
func doSomething() error {
var err *MyError = nil
// ... कुछ लॉजिक, लेकिन err nil ही रहता है
return err
}
func main() {
err := doSomething()
if err != nil {
fmt.Println("त्रुटि है:", err)
} else {
fmt.Println("कोई त्रुटि नहीं")
}
}
```
मैं उम्मीद करता हूँ कि प्रोग्राम "कोई त्रुटि नहीं" प्रिंट करेगा, क्योंकि मैं nil लौटा रहा हूँ।