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}}
在此範例中,在檢查paragraph_attachment 後附加的{{else if .IsMenu}}檢查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中文網其他相關文章!