Golang HTML テンプレート内のスイッチまたは if/elseif/else
問題:
の表示Go 構造体フィールドのタイプに基づいたテンプレート内のデータ。現在の解決策には、複数の {{if}} ステートメントをネストするか、型をテストするための個別の関数を作成することが含まれます。
解決策:
Switch ステートメント:
{{range .Paragraphs}} {{switch .Type}} {{case paragraph_hypothesis}}: -- hypothesis presentation code -- {{case paragraph_attachment}}: -- attachment presentation code -- {{case paragraph_menu}}: -- menu -- {{default}}: -- default code -- {{end}} {{end}}
if/elseif/elseステートメント:
{{range .Paragraphs}} {{if .IsAttachment}} -- attachment presentation code -- {{elseif .IsMenu}} -- menu -- {{else}} -- default code -- {{end}} {{end}}
この例では、追加の {{else if .IsMenu}} は、paragraph_attachment をチェックした後に、paragraph_menu タイプをチェックします。
関数の使用:
プレゼンテーションロジックが複雑な場合は、次のように定義することをお勧めします。 Go コード内の個別の関数。たとえば、GetHypothesisHTML() や GetAttachmentHTML() などの関数を定義し、テンプレートから呼び出すことができます。
{{range .Paragraphs}} {{if .IsHypothesis}} {{GetHypothesisHTML .}} {{elseif .IsAttachment}} {{GetAttachmentHTML .}} {{elseif .IsMenu}} -- menu -- {{else}} -- default code -- {{end}} {{end}}
switch ステートメント、if/elseif/else ステートメント、または専用関数を活用することで、次のことが可能になります。 Go 構造体フィールドの型に基づいて、テンプレート内のデータをわかりやすく簡潔に表示します。
以上が構造体フィールドの型に基づいて Go HTML テンプレートでデータを表示する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。