Maison  >  Article  >  développement back-end  >  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
Linda Hamiltonoriginal
2024-10-28 02:36:31413parcourir

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>

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>

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>

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>

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