Comment passer une valeur par défaut à une méthode Go si le langage n'a pas de surcharge de fonctions ?
Bonjour à tous ! Je viens de commencer à apprendre Go après Python et j'ai rencontré un problème inattendu. En Python, j'avais l'habitude d'écrire des fonctions avec des arguments par défaut, par exemple :
```python
def greet(name, greeting="Hello"):
print(f"{greeting}, {name}!")
```
Si j'appelle `greet("Alice")`, greeting devient automatiquement "Hello". Si nécessaire, je peux passer ma propre valeur : `greet("Alice", "Hi")`.
Maintenant, j'écris en Go et je veux créer une méthode similaire. Supposons que j'ai une structure `Config` et une méthode `NewClient` qui prend l'adresse du serveur et un timeout. Je veux que le timeout par défaut soit de 30 secondes, mais que l'utilisateur puisse parfois définir le sien. En Go, j'ai essayé d'écrire ceci :
```go
type Config struct {
Address string
Timeout int
}
func NewClient(address string, timeout int) *Config {
if timeout == 0 {
timeout = 30 // valeur par défaut
}
return &Config{Address: address, Timeout: timeout}
}
```
Mais cela fonctionne mal : si l'utilisateur passe explicitement