Comment implémenter des paramètres optionnels de fonctions en Go ? (équivalent de l'overloading)
Bonjour à tous ! Je viens de commencer à apprendre Go après Java et Python, et je suis confronté à un problème qui me laisse perplexe.
Dans les langages que je connaissais avant, on pouvait facilement déclarer des fonctions avec des paramètres optionnels. Par exemple, en Python, je pouvais écrire : def connect(host, port=8080, timeout=30). Et l'appeler comme connect("localhost"), connect("localhost", 9090) ou connect("localhost", 9090, 60).
Maintenant, j'essaie de faire la même chose en Go. J'ai besoin d'écrire une fonction pour se connecter à un serveur, où le port et le timeout doivent être optionnels. J'ai essayé l'approche évidente :
```go
func connect(host string, port int = 8080, timeout int = 30) {
// ... code de connexion
}
```
Mais le compilateur renvoie une erreur : "syntax error: unexpected =, expecting {". Il s'avère qu'en Go, il n'y a pas de valeurs par défaut pour les paramètres.
J'ai aussi lu qu'en Go, il n'y a pas de surcharge de fonctions (overloading). Autrement dit, je ne peux pas simplement créer deux versions d'une fonction avec un nombre différent de paramètres, comme en Java :
```go