Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah saya boleh mengulangi kod HTML beberapa kali menggunakan templat Go?

Bagaimanakah saya boleh mengulangi kod HTML beberapa kali menggunakan templat Go?

Linda Hamilton
Lepaskan: 2024-12-27 06:06:20
asal
912 orang telah melayarinya

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

Mengulang Kod HTML dengan Templat Go

Dalam pembangunan web dengan Go, terdapat keadaan di mana anda mungkin perlu mengulangi baris HTML yang ditentukan bilangan kali. Mari kita terokai cara untuk mencapai ini menggunakan templat Go.

Menggunakan {{range}} Tindakan

Untuk mengulangi sebahagian HTML dalam templat Go, kami boleh menggunakan tindakan {{range}}. Walau bagaimanapun, tindakan ini memerlukan objek boleh lelar, seperti hirisan, tatasusunan atau peta.

Melalui Slice Nilai Sifar

Daripada mencipta struktur data sebenar , kita boleh melepasi kepingan nilai sifar yang pada asasnya tidak mempunyai memori yang diperuntukkan. Potongan ini bertindak sebagai pemegang tempat untuk tindakan {{range}} untuk berulang. Contohnya:

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

Output:

<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>
Salin selepas log masuk

Menggunakan Slice Terisi

Jika anda perlu memulakan indeks di nilai selain sifar, pertimbangkan untuk mengisi kepingan dengan nilai yang diingini dan kemudian berulang ia.

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)
}
Salin selepas log masuk

Output:

<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>
Salin selepas log masuk

Menggunakan Slice Nilai Sifar dan Fungsi Tersuai

Pendekatan alternatif adalah dengan mendaftarkan fungsi tersuai yang menambah nombor tertentu dan mengembalikan hasilnya. Ini membolehkan anda menggunakan kepingan nilai sifar dan memanggil fungsi dalam templat untuk mendapatkan nombor yang diingini.

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>`
Salin selepas log masuk

Output:

<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>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengulangi kod HTML beberapa kali menggunakan templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan