Lorsque vous travaillez avec des structures dans Go, les initialiser avec des valeurs par défaut raisonnables peut être crucial pour garantir leur bon fonctionnement. Bien que Go manque de constructeurs traditionnels, plusieurs méthodes peuvent être utilisées pour atteindre cet objectif.
Méthode Init
La méthode init, bien que définie au niveau du package, peut être utilisé pour effectuer des tâches d’initialisation des structures du package. Cependant, il n'est pas directement lié à la structure et n'est pas invoqué lors de la création de la structure.
Nouvelles fonctions
Une pratique courante dans Go consiste à définir de nouvelles fonctions qui renvoie les pointeurs initialisés vers les structures. Ces fonctions permettent l'attribution de valeurs par défaut lors de l'initialisation de la structure :
func NewThing(someParameter string) *Thing { p := new(Thing) p.Name = someParameter p.Num = 33 // Sensible default value return p }
Nouvelles fonctions condensées
Pour les structures simples, une version condensée de la nouvelle fonction peut être utilisé, renvoyant directement une structure initialisée :
func NewThing(someParameter string) *Thing { return &Thing{someParameter, 33} }
Make Fonctions
Les fonctions Make sont similaires aux fonctions New mais renvoient des structures par valeur plutôt que par des pointeurs. Ceci est utile lorsque vous n'avez pas besoin d'un pointeur vers la structure :
func makeThing(name string) Thing { return Thing{name, 33} }
Référence
Pour plus d'informations sur l'allocation à l'aide de new, reportez-vous au Go effectif documentation : https://go.dev/doc/effective_go#allocation
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!