Maison > développement back-end > Golang > Comment vérifier si un champ « sql.Null[Type] » est valide dans les modèles Go ?

Comment vérifier si un champ « sql.Null[Type] » est valide dans les modèles Go ?

Linda Hamilton
Libérer: 2024-10-28 02:36:31
original
497 Les gens l'ont consulté

How to Check if a `sql.Null[Type]` Field is Valid in Go Templates?

Test des champs valides dans les modèles Go

Dans le package base de données/sql de Go, les structures Null[Type] aident à mapper les valeurs de la base de données avec des valeurs nulles potentielles en code. Déterminer si un champ struct est nul, c'est-à-dire si sa propriété Valid est fausse, peut être difficile.

Pour afficher un champ SQL, utilisez la propriété .Value :

<code class="go">{{ .MyStruct.MyField.Value }}</code>
Copier après la connexion

Lorsque vous avez besoin de plus comparaisons complexes, tester la validité du champ devient important. L'utilisation de if avec .Value seul entraîne des erreurs si .MyField n'est pas valide.

Les tentatives pour tester l'existence d'un champ valide à l'aide des fonctions de modèle et et ou échouent également. L'évaluation ne se termine pas prématurément même si le résultat est clair dès le premier argument.

Envisagez plutôt d'utiliser des blocs if imbriqués :

<code class="go">{{if $.MyStruct.MyField}}
    {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}}
{{end}}</code>
Copier après la connexion

Alternativement, le bloc with peut être utilisé, mais il modifie le contexte du modèle actuel :

<code class="go">{{range .SomeSlice}}
    {{with $.MyStruct.MyField}}
        {{if eq .Value .}}selected="selected"{{end}}
    {{end}}
{{/range}}</code>
Copier après la connexion

Notez que les types sql.NullXX sont des structures non nulles. Pour déterminer si leur méthode Value renverra une valeur non nulle, vérifiez leur champ Valide :

<code class="go">{{if $.MyStruct.MyField.Valid}}
    {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}}
{{end}}</code>
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