Maison > développement back-end > Golang > Comment initialiser des structures dans Go sans constructeurs ?

Comment initialiser des structures dans Go sans constructeurs ?

Susan Sarandon
Libérer: 2024-12-18 02:47:14
original
245 Les gens l'ont consulté

How Do I Initialize Structs in Go Without Constructors?

Constructeurs dans Go

Lorsque vous traitez des types personnalisés définis comme des structures dans Go, il peut être souhaitable de les initialiser avec des valeurs par défaut raisonnables lors création. Cependant, contrairement aux langages de programmation orientés objet traditionnels, Go ne dispose pas de constructeurs dédiés aux structures.

Alternative aux constructeurs : nouvelles fonctions

Pour remédier à cette situation, les ingénieurs Go utilisent généralement des fonctions « nouvelles ». Ces fonctions acceptent les paramètres nécessaires à l'initialisation et renvoient un pointeur vers une nouvelle instance de structure :

type Thing struct {
    Name  string
    Num   int
}

func NewThing(someParameter string) *Thing {
    p := new(Thing)
    p.Name = someParameter
    p.Num = 33
    return p
}
Copier après la connexion

Cette approche permet l'initialisation des valeurs de structure avec des valeurs par défaut spécifiques, telles que l'attribution d'une valeur au champ "Num". .

Syntaxe de nouvelle fonction condensée

Pour les structures simples, une syntaxe condensée peut être utilisé :

func NewThing(someParameter string) *Thing {
    return &Thing{someParameter, 33}
}
Copier après la connexion

Types de retour sans pointeur

Si le retour d'un pointeur n'est pas souhaité, une fonction "make" peut être utilisée à la place de "New " :

func makeThing(name string) Thing {
    return Thing{name, 33}
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal