यदि Go में क्लास और कंस्ट्रक्टर नहीं हैं तो उन्हें सही तरीके से कैसे बनाएं?
सभी को नमस्कार! मैंने Python और Java के बाद Go सीखना शुरू किया है, और मुझे एक गंभीर समस्या का सामना करना पड़ा। Go में सामान्य अर्थों में क्लास नहीं हैं और कंस्ट्रक्टर नहीं हैं। तो फिर जटिल इनिशियलाइज़ेशन लॉजिक वाली ऑब्जेक्ट कैसे बनाएं?
मान लीजिए, मैं `Name`, `Email` और `Age` फील्ड वाली एक `User` स्ट्रक्चर बनाना चाहता हूँ। आदर्श रूप से, मैं चाहता हूँ कि यूज़र बनाते समय ईमेल की वैधता जाँची जाए, उम्र नकारात्मक न हो, और नाम खाली न हो। Python में मैं `__init__` लिखता, Java में — जाँच वाला कंस्ट्रक्टर। Go में यह कैसे करें?
अब तक मैं ऐसा कर रहा हूँ:
```go
type User struct {
Name string
Email string
Age int
}
func main() {
u := User{
Name: "Alice",
Email: "alice@example.com",
Age: 30,
}
// लेकिन यहाँ कोई जाँच नहीं है! खाली नाम या -5 उम्र वाला User बनाया जा सकता है।
fmt.Println(u)
}
```
मैं समझता हूँ कि Go में स्ट्रक्चर घोषित करके फील्ड भर सकते हैं, लेकिन यह असुरक्षित है। एक ऐसे फंक्शन की ज़रूरत है जो गारंटी दे...