Wechseln Sie oder if / elseif / else in Golang-HTML-Vorlagen
Ich habe diese Struktur:
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
}
Ich möchte meine Absätze in a anzeigenType
abhängig Weise.
Die einzige Lösung, die ich fand, basierte auf dedizierten Funktionen wieisAttachment
Testen derType
in Go und verschachtelt{{if}}
:
{{range .Paragraphs}}
{{if .IsAttachment}}
-- attachement presentation code --
{{else}}{{if .IsMenu}}
-- menu --
{{else}}
-- default code --
{{end}}{{end}}
{{end}}
Tatsächlich habe ich mehr Typen, was es noch seltsamer macht und sowohl den Go-Code mit überfülltIsSomething
funktionen und die vorlage mit denen{{end}}
.
Was ist die saubere Lösung? Gibt es einigeswitch
oderif/elseif/else
Lösung in Go-Vorlagen? Oder eine ganz andere Art, mit diesen Fällen umzugehen?