Maison >développement back-end >Golang >Comment puis-je initialiser des structures dans Go sans les constructeurs traditionnels ?
Constructeurs en Go : alternatives pour garantir des valeurs par défaut raisonnables
Traditionnellement, les constructeurs sont utilisés pour initialiser des objets dans les langages de programmation orientés objet. Cependant, dans Go, qui adopte une approche différente de la conception orientée objet, il n'y a pas de constructeurs au sens conventionnel du terme.
Pour répondre au besoin de définir des valeurs par défaut raisonnables pour les structures, Go propose plusieurs alternatives. Une option est la méthode init, qui s'exécute au niveau du package. Cependant, cette approche ne convient pas à l'initialisation de structures individuelles.
Une pratique plus courante consiste à créer une fonction NewThing qui prend les paramètres nécessaires et renvoie un pointeur vers une structure initialisée. Cette fonction permet de définir des valeurs spécifiques tout en attribuant des valeurs par défaut à d'autres champs. Par exemple :
type Thing struct { Name string Num int } func NewThing(name string) *Thing { p := new(Thing) p.Name = name p.Num = 33 // Default value return p }
Une version condensée de cette fonction serait :
func NewThing(name string) *Thing { return &Thing{name, 33} }
Si le retour d'un pointeur n'est pas souhaitable, une autre option consiste à créer une fonction makeThing qui renvoie directement une valeur :
func makeThing(name string) Thing { return Thing{name, 33} }
Cette approche convient aux structures relativement simples et ne nécessitant pas de pointeurs. Il convient de noter que le nouveau mot-clé alloue de la mémoire dans Go, il est donc important de prendre en compte les pratiques de gestion de la mémoire lorsque vous travaillez avec des pointeurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!