ホームページ >バックエンド開発 >Golang >`sql.Null[Type]` フィールドが Go テンプレートで有効かどうかを確認する方法

`sql.Null[Type]` フィールドが Go テンプレートで有効かどうかを確認する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-28 02:36:31521ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。