Comment définir des valeurs par défaut pour les champs de struct en Go ?
Bonjour à tous ! Je suis nouveau en Go et j'ai rencontré un problème : en Go, il n'y a pas de constructeurs ni de mécanisme intégré pour spécifier des valeurs par défaut pour les champs de struct, comme en Python ou PHP. Supposons que j'ai une struct pour la configuration d'une application :
```go
type Config struct {
Port int
Timeout int
Debug bool
}
```
Je souhaite que par défaut `Port` soit égal à 8080, `Timeout` à 30 secondes, et `Debug` à `false`. Mais lorsque je crée une struct `cfg := Config{}`, tous les champs reçoivent des valeurs nulles (0, 0, false). Je dois explicitement spécifier tous les champs à chaque fois : `cfg := Config{Port: 8080, Timeout: 30}`. C'est gênant, surtout si la struct a beaucoup de champs et que je veux que certains aient des valeurs par défaut raisonnables.
J'ai essayé d'utiliser les tags de struct, mais ils ne semblent pas affecter l'initialisation. Existe-t-il un moyen de définir des valeurs par défaut directement dans la définition de la struct ? Ou dois-je écrire une fonction factory ? Mais alors, pour chaque struct...