Heim > Backend-Entwicklung > Golang > Wie kann ich HTML-Code mithilfe von Go-Vorlagen eine bestimmte Anzahl von Malen wiederholen?

Wie kann ich HTML-Code mithilfe von Go-Vorlagen eine bestimmte Anzahl von Malen wiederholen?

Linda Hamilton
Freigeben: 2024-12-27 06:06:20
Original
912 Leute haben es durchsucht

How can I repeat HTML code a specified number of times using Go templates?

Wiederholen von HTML-Code mit Go-Vorlagen

Bei der Webentwicklung mit Go gibt es Fälle, in denen Sie möglicherweise eine bestimmte HTML-Zeile iterieren müssen Anzahl der Male. Lassen Sie uns untersuchen, wie Sie dies mithilfe von Go-Vorlagen erreichen können.

Verwenden der {{range}}-Aktion

Um einen Teil des HTML-Codes innerhalb einer Go-Vorlage zu wiederholen, können wir verwenden die Aktion {{range}}. Für diese Aktion ist jedoch ein iterierbares Objekt wie ein Slice, ein Array oder eine Karte erforderlich.

Übergabe eines Nullwert-Slices

Anstatt eine tatsächliche Datenstruktur zu erstellen können wir einen Nullwert-Slice übergeben, dem im Wesentlichen kein Speicher zugewiesen ist. Dieses Slice fungiert als Platzhalter für die Aktion {{range}}, über die iteriert werden soll. Zum Beispiel:

const templ = `<ul>
{{range $idx, $e := .}}
    <li><a href="/?page={{$idx}}">{{$idx}}</a></li>
{{end}}
</ul>`
Nach dem Login kopieren
tmpl := template.Must(template.New("").Parse(templ))
n := 5
if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil {
    panic(err)
}
Nach dem Login kopieren

Ausgabe:

<ul>

    <li><a href="/?page=0">0</a></li>

    <li><a href="/?page=1">1</a></li>

    <li><a href="/?page=2">2</a></li>

    <li><a href="/?page=3">3</a></li>

    <li><a href="/?page=4">4</a></li>

</ul>
Nach dem Login kopieren

Verwendung eines gefüllten Segments

Wenn Sie die Indizes bei beginnen müssen Wenn Sie einen anderen Wert als Null haben, sollten Sie erwägen, das Segment mit den gewünschten Werten zu füllen und dann darüber zu iterieren it.

tmpl := template.Must(template.New("").Parse(templ))
n := 5
values := make([]int, n)
for i := range values {
    values[i] = (i + 1) * 2
}
if err := tmpl.Execute(os.Stdout, values); err != nil {
    panic(err)
}
Nach dem Login kopieren

Ausgabe:

<ul>

    <li><a href="/?page=2">2</a></li>

    <li><a href="/?page=4">4</a></li>

    <li><a href="/?page=6">6</a></li>

    <li><a href="/?page=8">8</a></li>

    <li><a href="/?page=10">10</a></li>

</ul>
Nach dem Login kopieren

Verwendung eines Nullwert-Slice und einer benutzerdefinierten Funktion

Ein alternativer Ansatz besteht darin, a zu registrieren Benutzerdefinierte Funktion, die eine bestimmte Zahl erhöht und das Ergebnis zurückgibt. Dadurch können Sie ein Nullwert-Slice verwenden und die Funktion innerhalb der Vorlage aufrufen, um die gewünschten Zahlen zu erhalten.

func main() {
    tmpl := template.Must(template.New("").Funcs(template.FuncMap{
        "Add": func(i int) int { return i + 1 },
    }).Parse(templ))
    n := 5
    if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil {
        panic(err)
    }
}

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

Ausgabe:

<ul>

    <li><a href="/?page=1">1</a></li>

    <li><a href="/?page=2">2</a></li>

    <li><a href="/?page=3">3</a></li>

    <li><a href="/?page=4">4</a></li>

    <li><a href="/?page=5">5</a></li>

</ul>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich HTML-Code mithilfe von Go-Vorlagen eine bestimmte Anzahl von Malen wiederholen?. 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