Maison >développement back-end >Golang >Pourquoi mon modèle Go n'évalue-t-il pas les conditions avec des champs non exportés ?

Pourquoi mon modèle Go n'évalue-t-il pas les conditions avec des champs non exportés ?

DDD
DDDoriginal
2024-10-28 05:44:02618parcourir

 Why is my Go Template not Evaluating Conditionals with Unexported Fields?

Opération fastidieuse avec un modèle Go

En essayant d'effectuer une vérification conditionnelle dans un modèle Go, vous pouvez rencontrer des problèmes inattendus. Considérez le scénario suivant :

Vous avez déclaré une structure appelée Category avec un champ booléen nommé isOrientRight. Dans une boucle de plage itérant sur une tranche de structures Category, vous essayez d'utiliser des instructions {{if}} pour contrôler la sortie en fonction de la valeur de isOrientRight. Cependant, le modèle n'affiche qu'une page vide.

La solution

Pour résoudre ce problème, vous devez exporter les champs de la structure Category en mettant en majuscule leurs premières lettres . Par défaut, les champs non exportés (commençant par des lettres minuscules) ne sont accessibles que dans le package qui déclare le type. Dans ce cas, text/template et html/template sont des packages distincts, vous devez donc exporter les champs pour leur permettre d'y accéder.

Voici le code mis à jour :

type Category struct {
    ImageURL      string

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!

Déclaration:
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