ホームページ > バックエンド開発 > Golang > Else If を使用して Go HTML テンプレートで条件付きレンダリングを処理する方法

Else If を使用して Go HTML テンプレートで条件付きレンダリングを処理する方法

Mary-Kate Olsen
リリース: 2024-11-13 08:03:02
オリジナル
1025 人が閲覧しました

How to Handle Conditional Rendering in Go HTML Templates with Else If?

Go HTML テンプレートでの条件付きレンダリングの処理

Go で HTML テンプレートをレンダリングする場合、多くの場合、特定の条件に基づいてコンテンツを異なる方法で表示することが必要になります。一般的なアプローチの 1 つは、ネストされた if/elseif/else 構造を使用することです。ただし、多数の条件がある場合、コードが乱雑になる可能性があります。

次の 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
}
ログイン後にコピー

次の要素に依存する方法で段落を表示したいとします。彼らのタイプ。次のようなネストされた if ステートメントを使用することは可能ですが、

{{range .Paragraphs}}
    {{if .IsAttachment}}
        -- attachment presentation code  --
    {{else}}{{if .IsMenu}}
        -- menu --
    {{else}}
        -- default code --
    {{end}}{{end}}
{{end}}
ログイン後にコピー

このアプローチは、型が増えると扱いにくくなり、(IsSomething などの関数を使用した) 乱雑な Go コードと (ネストされた {{end} を使用した) テンプレート コードの両方が生成されます。

幸いなことに、Go テンプレートには、else if 構造というよりクリーンなソリューションがあります。これを使用すると、上記のテンプレートを次のように単純化できます:

{{range .Paragraphs}}
    {{if .IsAttachment}}
        -- attachment presentation code  --
    {{else if .IsMenu}}
        -- menu --
    {{else}}
        -- default code --
    {{end}}
{{end}}
ログイン後にコピー

else if を使用すると、複数のネストされた if ステートメントの必要性がなくなり、テンプレート コードがより簡潔で理解しやすくなります。

以上がElse If を使用して Go HTML テンプレートで条件付きレンダリングを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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