Heim >Backend-Entwicklung >Golang >Wie überprüfe ich, ob ein „sql.Null[Type]'-Feld in Go-Vorlagen gültig ist?

Wie überprüfe ich, ob ein „sql.Null[Type]'-Feld in Go-Vorlagen gültig ist?

Linda Hamilton
Linda HamiltonOriginal
2024-10-28 02:36:31555Durchsuche

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

Gültige Felder in Go-Vorlagen testen

Im Datenbank-/SQL-Paket von Go helfen Null[Type]-Strukturen bei der Zuordnung von Datenbankwerten zu potenziellen Nullen in Code umwandeln. Es kann eine Herausforderung sein, festzustellen, ob ein Strukturfeld null ist, d. h. seine Valid-Eigenschaft falsch ist.

Um ein SQL-Feld anzuzeigen, verwenden Sie die .Value-Eigenschaft:

<code class="go">{{ .MyStruct.MyField.Value }}</code>

Wenn Sie mehr benötigen Bei komplexen Vergleichen wird es wichtig, die Gültigkeit des Feldes zu testen. Die alleinige Verwendung von if mit .Value führt zu Fehlern, wenn .MyField nicht gültig ist.

Versuche, die Existenz eines gültigen Felds mithilfe von und und oder Vorlagenfunktionen zu testen, sind ebenfalls erfolglos. Die Auswertung wird auch dann nicht vorzeitig beendet, wenn das Ergebnis aus dem ersten Argument klar hervorgeht.

Erwägen Sie stattdessen die Verwendung verschachtelter if-Blöcke:

<code class="go">{{if $.MyStruct.MyField}}
    {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}}
{{end}}</code>

Alternativ kann der with-Block verwendet werden, aber Es ändert den aktuellen Vorlagenkontext:

<code class="go">{{range .SomeSlice}}
    {{with $.MyStruct.MyField}}
        {{if eq .Value .}}selected="selected"{{end}}
    {{end}}
{{/range}}</code>

Beachten Sie, dass sql.NullXX-Typen Nicht-Null-Strukturen sind. Um festzustellen, ob ihre Value-Methode einen Wert ungleich Null zurückgibt, überprüfen Sie ihr Feld „Gültig“:

<code class="go">{{if $.MyStruct.MyField.Valid}}
    {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}}
{{end}}</code>

Das obige ist der detaillierte Inhalt vonWie überprüfe ich, ob ein „sql.Null[Type]'-Feld in Go-Vorlagen gültig ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn