Maison >développement back-end >Golang >Comment puis-je initialiser des structures Go sans les constructeurs traditionnels ?
Les constructeurs peuvent-ils être utilisés pour initialiser des structures Go ?
Dans Go, les structures peuvent être initialisées avec des valeurs par défaut raisonnables via diverses méthodes. Malgré le manque de constructeurs traditionnels en raison de la nature non-POO de Go, il existe des techniques alternatives pour obtenir des fonctionnalités similaires.
Méthode 1 : fonction NewThing avec retour de pointeur
Quand les valeurs nulles ne conviennent pas, une option consiste à créer une fonction "NewThing" qui renvoie un pointeur vers un objet nouvellement initialisé. struct :
type Thing struct { Name string Num int } func NewThing(someParameter string) *Thing { p := new(Thing) p.Name = someParameter p.Num = 33 // Set a sensible default value return p }
Méthode 2 : fonction "NewThing" condensée
Pour les structures plus simples, une méthode plus concise est disponible :
func NewThing(someParameter string) *Thing { return &Thing{someParameter, 33} }
Méthode 3 : Fonction "makeThing" avec valeur Retour
Si le renvoi d'un pointeur n'est pas souhaité, la fonction peut être nommée "makeThing" et renvoyer une valeur :
func makeThing(name string) Thing { return Thing{name, 33} }
Référence
Pour plus de détails, reportez-vous à la section « Allocation avec nouveau » dans Effective Go.
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!