ホームページ  >  記事  >  バックエンド開発  >  Null 型を含む Go テンプレートの有効なフィールドを確認するにはどうすればよいですか?

Null 型を含む Go テンプレートの有効なフィールドを確認するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-27 04:45:02574ブラウズ

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

Go テンプレートの有効なフィールドのテスト

Go のデータベース/SQL パッケージでは、Null 型は、Null 許容データベース値を表すメカニズムを提供します。構造体のフィールドが null (Valid が false) かどうかをテンプレート式で判断するのは難しい場合があります。

SQL フィールドの値を出力するには、通常、.Value プロパティが使用されます。ただし、フィールドの値を別の値と比較する場合、フィールドが null の場合に問題が発生する可能性があります。 nil を直接テストする (例: $.MyStruct.MyField == nil) フィールドは nil ではなく空の Null 構造体であるため機能しません。

Go テンプレートの and 関数は、すべての引数を評価します。結果がすでに決まっている場合。したがって、$.MyStruct.MyField が null の場合、{{ if and ($.MyStruct.MyField) (eq $.MyStruct.MyField.Value .) }} を使用するとエラーが発生します。

代わりに、ネストされたものを使用してください。 {{ if }} ステートメントを使用して式を選択的に評価します:

{{ if $.MyStruct.MyField }}
    {{ if eq $.MyStruct.MyField.Value . }}selected="selected"{{ end }}
{{ end }}

代わりに、{{ with }} ステートメントを使用しますが、ドットが設定されるため注意が必要です:

{{ with $.MyStruct.MyField }}
    {{ if eq .Value $e }}selected="selected"{{ end }}
{{ end }}

上記の例では、NULL 値を許容できない値が想定されていることに注意してください。 Null タイプの場合は、有効フィールドを直接確認してください:

{{ if $.MyStruct.MyField.Valid }}
    {{ if eq $.MyStruct.MyField.Value . }}selected="selected"{{ end }}
{{ end }}

以上がNull 型を含む Go テンプレートの有効なフィールドを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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