Go में फंक्शन के वैकल्पिक पैरामीटर कैसे लागू करें? (overloading का एनालॉग)
सभी को नमस्ते! मैंने अभी-अभी Java और Python के बाद Go सीखना शुरू किया है, और मुझे एक समस्या का सामना करना पड़ा है जो मुझे पूरी तरह से हैरान कर रही है।
उन भाषाओं में जो मैं पहले जानता था, कोई आसानी से वैकल्पिक पैरामीटर वाले फंक्शन घोषित कर सकता था। उदाहरण के लिए, Python में मैं लिख सकता था: def connect(host, port=8080, timeout=30)। और इसे connect("localhost"), connect("localhost", 9090) या connect("localhost", 9090, 60) के रूप में कॉल कर सकता था।
अब मैं Go में भी ऐसा ही करने की कोशिश कर रहा हूँ। मुझे सर्वर से कनेक्ट करने के लिए एक फंक्शन लिखना है, जहाँ port और timeout वैकल्पिक होने चाहिए। मैंने स्पष्ट तरीका आज़माया:
```go
func connect(host string, port int = 8080, timeout int = 30) {
// ... कनेक्शन कोड
}
```
लेकिन compiler एक error देता है: "syntax error: unexpected =, expecting {"। पता चला, Go में पैरामीटर के लिए default values नहीं हैं।
मैंने यह भी पढ़ा कि Go में function overloading नहीं है। यानी मैं Java की तरह अलग-अलग पैरामीटर संख्या वाले फंक्शन के दो versions नहीं बना सकता:
```go