Go テンプレートで有効なフィールドをテストする
Go のデータベース/SQL パッケージでは、Null[Type] 構造体がデータベース値と潜在的な null のマッピングを支援します。コードに。構造体フィールドが null かどうか、つまり Valid プロパティが false かどうかを判断するのは難しい場合があります。
SQL フィールドを表示するには、.Value プロパティを使用します。
<code class="go">{{ .MyStruct.MyField.Value }}</code>
さらに多くの値が必要な場合複雑な比較では、フィールドの有効性をテストすることが重要になります。 if と .Value を単独で使用すると、.MyField が Valid でない場合にエラーが発生します。
and および or テンプレート関数を使用して有効なフィールドの存在をテストしようとしても失敗します。最初の引数から結果が明らかな場合でも、評価は早期に終了しません。
代わりに、ネストされた if ブロックの使用を検討してください。
<code class="go">{{if $.MyStruct.MyField}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}</code>
代わりに、with ブロックを使用することもできますが、現在のテンプレート コンテキストを変更します。
<code class="go">{{range .SomeSlice}} {{with $.MyStruct.MyField}} {{if eq .Value .}}selected="selected"{{end}} {{end}} {{/range}}</code>
sql.NullXX 型は非 nil 構造体であることに注意してください。 Value メソッドが nil 以外の値を返すかどうかを判断するには、Valid フィールドを確認します:
<code class="go">{{if $.MyStruct.MyField.Valid}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}</code>
以上が`sql.Null[Type]` フィールドが Go テンプレートで有効かどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。