Attribuer des pointeurs True à Bool dans les littéraux Go Struct
Les programmeurs Go rencontrent souvent des situations où ils doivent définir des pointeurs bool sur true dans les littéraux de structure . Cet article examine les options disponibles pour atteindre cet objectif sans définir de nouveaux identifiants.
L'extrait de code fourni présente une fonction qui prend un pointeur booléen, soulevant la question de savoir s'il existe une construction permettant au champ is d'être défini sur true dans le littéral de structure lui-même.
Approches de définition Vrai :
1. Indexation de tableau (non optimale) :
h := handler{is: &[]bool{true}[0]}
Cette méthode consiste à créer un tableau avec un seul booléen défini sur true, à l'indexer et à attribuer l'adresse de l'élément indexé. Bien qu'il ne nécessite pas de variables supplémentaires, le passe-partout et la consommation de mémoire sont des inconvénients.
2. Fonction d'assistance avec retour de pointeur :
func newTrue() *bool { b := true return &b }
Cette approche introduit une fonction d'assistance qui renvoie l'adresse d'une vraie variable booléenne. Il s'utilise comme suit :
h := handler{is: newTrue()}
Cela fournit une solution plus propre et personnalisable.
3. Fonction anonyme avec fermeture :
h := handler{is: func() *bool { b := true; return &b }()}
La technique de la fonction anonyme utilise une fermeture pour fournir la fonctionnalité souhaitée.
4. Option fonctionnelle avec fermeture :
h := handler{is: func(b bool) *bool { return &b }(true)}
Cette option offre une approche de programmation fonctionnelle, où la valeur booléenne est passée en argument.
Solution optimale :
La solution la plus optimale pour la plupart des scénarios consiste à utiliser une fonction d'assistance telle que newTrue(), car elle fournit un moyen concis et réutilisable de définir bool pointeurs vers true dans les littéraux de structure.
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!