क्या Go में Java/C++ की तरह फंक्शन और मेथड ओवरलोडिंग है?
सभी को नमस्ते! मैंने अभी-अभी Java के बाद Go सीखना शुरू किया है, और एक अजीब स्थिति का सामना किया। Java में मैं इस बात का आदी था कि एक ही नाम से कई मेथड घोषित किए जा सकते हैं, लेकिन अलग-अलग पैरामीटर के साथ — इसे ओवरलोडिंग कहते हैं। उदाहरण के लिए, मैं लिख सकता हूँ:\n\n```java\nvoid print(String s) { ... }\nvoid print(int i) { ... }\nvoid print(double d) { ... }\n```\n\nअब मैं Go में भी ऐसा ही करने की कोशिश कर रहा हूँ:\n\n```go\npackage main\n\nfunc print(s string) {\n fmt.Println(s)\n}\n\nfunc print(i int) {\n fmt.Println(i)\n}\n\nfunc main() {\n print("hello")\n print(42)\n}\n```\n\nलेकिन कंपाइलर एक एरर देता है: `print redeclared in this block`। मैंने पैकेज का नाम बदलने, फंक्शन का क्रम बदलने की कोशिश की — कुछ भी काम नहीं करता।\n\nमैंने पढ़ा है कि Go में क्लासिकल ओवरलोडिंग नहीं है, लेकिन यह बहुत अजीब लगता है।