У меня есть эта структура:
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
}
Я хочу отображать свои абзацы Type
зависимым способом.
Единственное решение, которое я нашел, было основано на специальных функциях, таких как isAttachment
тестирование Type
в Go и вложенных {{if}}
:
{{range .Paragraphs}}
{{if .IsAttachment}}
-- attachement presentation code --
{{else}}{{if .IsMenu}}
-- menu --
{{else}}
-- default code --
{{end}}{{end}}
{{end}}
На самом деле у меня больше типов, что делает его еще более странным, загромождая как код Go с IsSomething
функциями, так и шаблон с этими {{end}}
.
Какое чистое решение? Есть ли какое-нибудь решение switch
или if/elseif/else
в шаблонах go? Или совершенно другой способ обработки этих случаев?
Paragraph
не слишком ясен. Как правило, вы можете создать собственное поведение шаблона, добавив функции в FuncMap (golang.org/pkg /text/template/#Template.Funcs). Извините, я не совсем понимаю, что вы пытаетесь сделать. - person Intermernet   schedule 07.06.2013