Avatar ·

Comment créer correctement des constructeurs en Go si le langage n'a ni classes ni constructeurs ?

Bonjour à tous ! Je viens de commencer à étudier Go après Python et Java, et je suis sérieusement bloqué. En Go, il n'y a pas de classes au sens habituel et pas de constructeurs. Comment alors créer des objets avec une logique d'initialisation complexe ? Supposons que je veuille créer une structure `User` avec les champs `Name`, `Email` et `Age`. Idéalement, je veux que lors de la création de l'utilisateur, l'email soit vérifié pour sa validité, l'âge ne puisse pas être négatif, et le nom ne soit pas vide. En Python, j'écrirais `__init__`, en Java un constructeur avec des vérifications. Comment faire cela en Go ? Pour l'instant, je fais ainsi : ```go type User struct { Name string Email string Age int } func main() { u := User{ Name: "Alice", Email: "alice@example.com", Age: 30, } // Mais il n'y a pas de vérifications ici ! On peut créer un User avec un nom vide ou un âge de -5. fmt.Println(u) } ``` Je comprends qu'en Go on peut simplement déclarer une structure et remplir les champs, mais ce n'est pas sûr. Il faut une fonction qui garantisse