Avatar ·

Comment implémenter des paramètres optionnels de fonctions en Go ? Analogie de la surcharge d'autres langages

Bonjour, collègues ! Je passe de Python et Java à Go, et j'ai rencontré un problème. Dans ces langages, j'avais l'habitude de la surcharge de fonctions et des arguments optionnels, où l'on peut définir des valeurs par défaut. Par exemple, en Python, j'écrirais : ```python def create_user(name, age=None, city="Moscow"): ... ``` Mais en Go, je ne peux pas simplement omettre un paramètre ou écrire deux fonctions avec le même nom. J'ai besoin de créer une fonction pour enregistrer un utilisateur, où seul `name` est obligatoire, tandis que `age` et `city` sont optionnels. J'ai essayé ce code, mais le compilateur se plaint : ```go func CreateUser(name string, age int, city string) { // si age n'est pas passé, je veux qu'il soit 0 // si city n'est pas passé, je veux "Moscow" } func CreateUser(name string) { // erreur : CreateUser redeclared CreateUser(name, 0, "Moscow") } ``` J'ai lu la documentation — en Go, il n'y a pas de surcharge de fonctions. J'ai vu des variantes avec des pointeurs, mais alors le code appelant devient lourd : `CreateUser("Alex", nil, nil)`. Existe-t-il une meilleure