Heim >Backend-Entwicklung >Golang >Wie gehe ich mit bedingtem Rendering in Go-HTML-Vorlagen mit Else If um?

Wie gehe ich mit bedingtem Rendering in Go-HTML-Vorlagen mit Else If um?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-13 08:03:021042Durchsuche

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

Umgang mit bedingtem Rendering in Go-HTML-Vorlagen

Beim Rendern von HTML-Vorlagen in Go ist es häufig erforderlich, Inhalte basierend auf bestimmten Bedingungen unterschiedlich anzuzeigen. Ein gängiger Ansatz ist die Verwendung verschachtelter if/elseif/else-Konstrukte. In Fällen mit einer großen Anzahl von Bedingungen kann dies jedoch zu unübersichtlichem Code führen.

Bedenken Sie die folgende Go-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
}

Sie möchten Absätze auf eine Weise anzeigen, die davon abhängt ihre Art. Es ist zwar möglich, verschachtelte if-Anweisungen wie diese zu verwenden:

{{range .Paragraphs}}
    {{if .IsAttachment}}
        -- attachment presentation code  --
    {{else}}{{if .IsMenu}}
        -- menu --
    {{else}}
        -- default code --
    {{end}}{{end}}
{{end}}

Dieser Ansatz wird bei mehr Typen unhandlich, was sowohl zu unübersichtlichem Go-Code (mit Funktionen wie IsSomething) als auch zu Vorlagencode (mit verschachtelten {{end} }-Anweisungen).

Glücklicherweise gibt es in Go-Vorlagen eine sauberere Lösung: das else if-Konstrukt. Damit können Sie die obige Vorlage wie folgt vereinfachen:

{{range .Paragraphs}}
    {{if .IsAttachment}}
        -- attachment presentation code  --
    {{else if .IsMenu}}
        -- menu --
    {{else}}
        -- default code --
    {{end}}
{{end}}

Durch die Verwendung von else if können Sie die Notwendigkeit mehrerer verschachtelter if-Anweisungen überflüssig machen, wodurch Ihr Vorlagencode prägnanter und leichter verständlich wird.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit bedingtem Rendering in Go-HTML-Vorlagen mit Else If um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn