Heim > Backend-Entwicklung > Golang > Wie wiederhole ich eine HTML-Zeile N-mal in Go-Webanwendungen?

Wie wiederhole ich eine HTML-Zeile N-mal in Go-Webanwendungen?

Barbara Streisand
Freigeben: 2024-12-26 05:43:36
Original
471 Leute haben es durchsucht

How to Repeat an HTML Line N Times in Go Web Applications?

Eine HTML-Zeile N-mal in Go-Webanwendungen wiederholen

Im Kontext der Webentwicklung kann es nützlich sein, darüber zu iterieren HTML-Inhalte eine bestimmte Anzahl von Malen. Zum Beispiel beim Erstellen von Paginierungslinks oder beim Generieren dynamischer Listen. Go bietet mehrere Möglichkeiten, dies über HTML-Vorlagen zu erreichen.

Verwenden der {{range}}-Aktion

Go-Vorlagen bieten die {{range}}-Aktion, Dies ermöglicht die Iteration über ein Slice, Array oder eine Karte. Um dies für sich wiederholende HTML-Inhalte zu verwenden, müssen Sie eine Sammlung von Elementen bereitstellen, die die gewünschten Wiederholungen darstellen.

Übergabe eines Nullwert-Slice

Ein Ansatz besteht darin, ein leeres Slice zu übergeben. Go erstellt zur Laufzeit ein Slice ohne Elemente. In unserem Beispiel können wir ein Nullwert-Segment von Strukturen übergeben: make([]struct{}, n).

Betrachten wir zum Beispiel den folgenden HTML-Code:

<ul>
    <li><a href="/?page=1">1</a></li>
    <li><a href="/?page=2">2</a></li>
                      .
                      .
                      .
    <li><a href="/?page=n">n</a></li>
</ul>
Nach dem Login kopieren

Wir können die Aktion {{range}} verwenden, um über einen Nullwert-Slice zu iterieren, die Links mit aufsteigenden Werten zu füllen und den HTML-Code zu generieren dynamisch.

Der Go-Vorlagencode könnte so aussehen:

const templ = `
<ul>
{{range $idx, $e := .}}
    <li><a href="/?page={{$idx}}">{{idx}}</a></li>
{{end}}
</ul>`
Nach dem Login kopieren

Verwenden eines gefüllten Slice

Eine andere Option ist das explizite Füllen ein Slice mit den gewünschten Werten. Dies kann nützlich sein, wenn Sie mehr Kontrolle über den generierten Inhalt benötigen. Um beispielsweise ungerade Zahlen zu generieren, die mit 2 beginnen, können Sie ein gefülltes Slice erstellen:

values := make([]int, n)
for i := range values {
    values[i] = (i + 1) * 2
}
Nach dem Login kopieren

Und die Vorlage ändern, um die Slice-Elemente direkt zu verwenden:

const templ = `
<ul>
{{range .}}
    <li><a href="/?page={{.}}">{{}}</a></li>
{{end}}
</ul>`
Nach dem Login kopieren

Wenn Sie nur steigende Zahlen ab 1 benötigen, können Sie dies tun Registrieren Sie eine benutzerdefinierte Funktion, um 1 zum Index des Nullwert-Slices hinzuzufügen:

func Add(i int) int { return i + 1 }

tmpl := template.Must(template.New("").Funcs(template.FuncMap{
    "Add": Add,
}).Parse(templ))
Nach dem Login kopieren

Ändern Sie dann die Vorlage, um die benutzerdefinierte Funktion aufzurufen:

const templ = `
<ul>
{{range $idx, $e := .}}{{$idx := Add $idx}}
    <li><a href="/?page={{$idx}}">{{idx}}</a></li>
{{end}}
</ul>`
Nach dem Login kopieren

Durch die Verwendung dieser Techniken Sie können sich wiederholende HTML-Inhalte in Ihren Go-Webanwendungen effizient generieren.

Das obige ist der detaillierte Inhalt vonWie wiederhole ich eine HTML-Zeile N-mal in Go-Webanwendungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage