Go HTML テンプレートの Switch ステートメント
型情報を含む Go 構造体を扱う場合、多くの場合、別の HTML コンテンツ ベースでレンダリングする必要があります。タイプの値について。従来の解決策には、複数の {{if}} ステートメントをネストし、乱雑で扱いにくいテンプレートを作成する必要がありました。
代替アプローチ: {{else if}} を使用する
Go HTMLテンプレートには {{else if}} ディレクティブが用意されており、これにより、型に依存するレンダリングを処理するためのよりクリーンで効率的な方法が提供されます。このディレクティブを使用すると、複数の条件を連鎖させて、簡潔で読みやすいテンプレートを作成できるようになります。
たとえば、次の Go 構造体について考えてみましょう。
const ( paragraph_hypothesis = 1 << iota paragraph_attachment = 1 << iota paragraph_menu = 1 << iota ) type Paragraph struct { Type int // paragraph_hypothesis or paragraph_attachment or paragraph_menu }
段落を 1 つの形式でレンダリングできるようになりました。次のテンプレートを使用した型依存の方法:
{{range .Paragraphs}} {{if .IsAttachment}} -- attachement presentation code -- {{else if .IsMenu}} -- menu -- {{else}} -- default code -- {{end}} {{end}}
複数の {{else if}} ディレクティブをチェーンすることで、専用の関数やネストされた {{if}} ステートメントを必要とせずに、複数の型の値を使用できます。このアプローチにより、Go コードとテンプレートの両方がクリーンで整理された状態に保たれます。
結論
Go HTML テンプレートで {{else if}} を使用すると、強力かつ効率的な方法が提供されます。タイプ依存のレンダリングを処理します。これにより、ネストされた {{if}} ステートメントや不要な関数が煩雑になることなく、簡潔で読みやすいテンプレートを作成できます。
以上がGo テンプレートのタイプ値に基づいて異なる HTML コンテンツをレンダリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。