Go テンプレートで Nil オブジェクトとプロパティ値に基づいて異なるコンテンツを表示するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-21 06:44:09
オリジナル
537 人が閲覧しました

How Can I Display Different Content Based on a Nil Object and Property Values in Go Templates?

テンプレート条件での Nil 値の許可

Go テンプレートを使用する場合、オブジェクトがは nil ですが、特定のプロパティが設定されている場合は別のコンテンツを表示します。匿名構造体を使用することは可能ですが、不必要なボイラープレートが発生する可能性があります。

多用途のソリューション

この問題を適切に解決するには、次のアプローチを検討してください。

テンプレート コード

{{if not .}}
   // default content
{{else if eq .MetaValue "some-x"}}
   // some-x case
{{else}}
   // other case
{{end}}
ログイン後にコピー

説明

このテンプレート コードは、次の式を順番に評価します:

  1. {{if not .}}: オブジェクトが nil か空であるかどうかをチェックします (false、0、空の配列/スライス/マップ、または空の文字列を含む)。存在する場合、デフォルトのコンテンツが表示されます。
  2. {{else if eq .MetaValue "some-x"}}: オブジェクトの MetaValue プロパティが "some-x" に設定されているかどうかを確認します。 ×」。一致する場合、そのプロパティに固有のコンテンツが表示されます。
  3. {{else}}: 前の条件がどちらも満たされない場合は、残りのコンテンツを表示できます。

eq の代わりに not 演算子を使用します。 nil の場合、このアプローチは、オブジェクトが nil、空、または nil 以外の値を持つ状況を含む、考えられるすべてのシナリオを処理します。これにより、明示的な nil チェックや不必要な匿名構造体の導入が不要になり、テンプレートがクリーンかつ簡潔に保たれます。

以上がGo テンプレートで Nil オブジェクトとプロパティ値に基づいて異なるコンテンツを表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート