Maison > Article > développement back-end > Comment gérer les valeurs nulles dans les modèles Golang lors de la comparaison avec les éléments Slice ?
Dans le package base de données/sql de Golang, les structures Null[Type] aident à gérer les valeurs de base de données et leurs possibles valeurs nulles. Cependant, tester les valeurs nulles peut s’avérer difficile. Utiliser .Value pour imprimer des champs SQL est simple, mais évaluer des valeurs dans des scénarios plus complexes peut entraîner des problèmes.
Considérez le code de modèle suivant :
<select name="y"> {{ range .SomeSlice }} <option value="{{ . }}" {{ if eq $.MyStruct.MyField.Value .}}selected="selected"{{ end }}></option> {{ end }} </select>
Ce code tente de définir l'attribut sélectionné en fonction de l'égalité de $.MyStruct.MyField.Value et .. Cependant, si .MyField n'est pas valide, une erreur se produit.
Il existe deux solutions à ce problème.
Utilisation des instructions if imbriquées
{{if $.MyStruct.MyField}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}
Utilisation de la directive with
<select name="y"> {{range $idx, $e := .SomeSlice}} <option value="{{.}}">{{with $.MyStruct.MyField}} {{if eq .Value $e}}selected="selected"{{end}} {{end}}</option> {{end}} </select>
Remarque :
Les structures Null[Type] ne sont pas nulles, alors vérifiez le champ Valide pour déterminer si Value() renverra une valeur non nulle.
{{if $.MyStruct.MyField.Valid}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}
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!