Avatar ·

Go में फ़ंक्शन के वैकल्पिक पैरामीटर कैसे लागू करें? अन्य भाषाओं से ओवरलोडिंग का एनालॉग

नमस्ते सहयोगियों! मैं Python और Java से Go पर स्विच कर रहा हूँ, और एक समस्या का सामना करना पड़ा। उन भाषाओं में मैं फ़ंक्शन ओवरलोडिंग और वैकल्पिक आर्गुमेंट्स का आदी था, जब डिफ़ॉल्ट मान सेट किए जा सकते हैं। उदाहरण के लिए, Python में मैं लिखूंगा: ```python def create_user(name, age=None, city="Moscow"): ... ``` लेकिन Go में मैं पैरामीटर को छोड़ नहीं सकता या एक ही नाम से दो फ़ंक्शन नहीं लिख सकता। मुझे उपयोगकर्ता पंजीकरण के लिए एक फ़ंक्शन बनाना है, जहाँ केवल `name` अनिवार्य है, और `age` और `city` वैकल्पिक हैं। मैंने ऐसा कोड आज़माया, लेकिन कंपाइलर त्रुटि देता है: ```go func CreateUser(name string, age int, city string) { // अगर age नहीं दिया गया, तो 0 चाहिए // अगर city नहीं दिया गया, तो "Moscow" चाहिए } func CreateUser(name string) { // त्रुटि: CreateUser redeclared CreateUser(name, 0, "Moscow") } ``` डॉक्यूमेंटेशन पढ़ा — Go में फ़ंक्शन ओवरलोडिंग नहीं है। पॉइंटर्स के साथ विकल्प देखे, लेकिन तब कॉल करने वाला कोड बोझिल हो जाता है: `CreateUser("Alex", nil, nil)`। क्या कोई और तरीका है?