Maison > développement back-end > Golang > Comment puis-je attribuer « true » à un pointeur « bool » dans un littéral Go Struct sans définir de variables supplémentaires ?

Comment puis-je attribuer « true » à un pointeur « bool » dans un littéral Go Struct sans définir de variables supplémentaires ?

DDD
Libérer: 2024-12-03 11:14:10
original
824 Les gens l'ont consulté

How Can I Assign `true` to a `bool` Pointer in a Go Struct Literal Without Defining Extra Variables?

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]}
Copier après la connexion

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
}
Copier après la connexion

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()}
Copier après la connexion

Cela fournit une solution plus propre et personnalisable.

3. Fonction anonyme avec fermeture :

h := handler{is: func() *bool { b := true; return &b }()}
Copier après la connexion

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)}
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal