Wie überprüfe ich in Go-Vorlagen mit Nulltypen auf gültige Felder?

Mary-Kate Olsen
Freigeben: 2024-10-27 04:45:02
Original
596 Leute haben es durchsucht

How to Check for Valid Fields in Go Templates with Null Types?

Testen auf gültige Felder in Go-Vorlagen

Im Datenbank-/SQL-Paket von Go stellen Nulltypen einen Mechanismus zur Darstellung nullfähiger Datenbankwerte bereit. Die Bestimmung, ob ein Feld innerhalb einer Struktur null ist (gültig ist falsch), kann in Vorlagenausdrücken eine Herausforderung sein.

Um den Wert eines SQL-Felds zu drucken, wird häufig die Eigenschaft .Value verwendet. Beim Vergleich des Werts eines Felds mit einem anderen Wert können jedoch Probleme auftreten, wenn das Feld null ist. Das direkte Testen auf Null (z. B. wenn $.MyStruct.MyField == Null) funktioniert nicht, da die Felder nicht Null, sondern leere Nullstrukturen sind.

Die Funktion „and“ in Go-Vorlagen wertet alle ihre Argumente aus, sogar alle wenn das Ergebnis bereits feststeht. Daher führt die Verwendung von {{ if and ($.MyStruct.MyField) (eq $.MyStruct.MyField.Value .) }} zu einem Fehler, wenn $.MyStruct.MyField null ist.

Verwenden Sie stattdessen verschachtelt {{ if }}-Anweisungen zur selektiven Auswertung von Ausdrücken:

{{ if $.MyStruct.MyField }}
    {{ if eq $.MyStruct.MyField.Value . }}selected="selected"{{ end }}
{{ end }}
Nach dem Login kopieren

Alternativ können Sie die {{ with }}-Anweisung verwenden, aber beachten Sie, dass sie den Punkt setzt, was sorgfältige Überlegung erfordert:

{{ with $.MyStruct.MyField }}
    {{ if eq .Value $e }}selected="selected"{{ end }}
{{ end }}
Nach dem Login kopieren

Beachten Sie, dass in den obigen Beispielen Werte angenommen werden, die keine NULL-Werte zulassen. Überprüfen Sie bei Nulltypen direkt das Feld „Gültig“:

{{ if $.MyStruct.MyField.Valid }}
    {{ if eq $.MyStruct.MyField.Value . }}selected="selected"{{ end }}
{{ end }}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie überprüfe ich in Go-Vorlagen mit Nulltypen auf gültige Felder?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!