Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh menggunakan untuk gelung dengan berkesan dalam templat Go?

Bagaimanakah saya boleh menggunakan untuk gelung dengan berkesan dalam templat Go?

Patricia Arquette
Patricia Arquetteasal
2024-10-31 12:28:13177semak imbas

How can I use for loops effectively in Go templates?

Untuk Gelung dalam Templat

Templat dalam Go menyediakan cara yang berkesan untuk menjana kandungan dinamik. Satu keperluan biasa apabila bekerja dengan templat ialah keperluan untuk gelung. Artikel ini meneroka cara untuk melaksanakan gelung dalam templat.

Menggunakan Julat dengan Tatasusunan Disediakan

Cara paling mudah untuk mencipta gelung dalam templat ialah menggunakan kata kunci julat dengan tatasusunan yang disediakan. Sebagai contoh, pertimbangkan kod berikut:

<code class="go">type Person struct {
    Name string
    Age  int
}

func main() {
    people := []Person{{"John", 30}, {"Mary", 25}}
    tmpl := template.Must(template.New("loop").Parse(`
        {{range .}}
            Name: {{.Name}}
            Age:  {{.Age}}
        {{end}}
    `))
    tmpl.Execute(os.Stdout, people)
}</code>

Templat ini akan berulang pada orang yang memotong dan mencetak nama dan umur setiap orang.

Menggunakan Fungsi Luaran

Pendekatan lain ialah menggunakan fungsi luaran untuk mencipta gelung. Ini boleh berguna apabila anda memerlukan lebih banyak fleksibiliti atau fungsi dalam gelung anda. Sebagai contoh, fungsi berikut boleh menjana gelung mudah untuk:

<code class="go">func For(start, end int) chan int {
    c := make(chan int)
    go func() {
        for i := start; i < end; i++ {
            c <- i
        }
        close(c)
    }()
    return c
}</code>

Fungsi ini mengambil titik permulaan dan penamat serta mengembalikan saluran yang berulang pada setiap integer dalam julat. Untuk menggunakan fungsi ini dalam templat, anda boleh melakukan perkara berikut:

<code class="go">tmpl := template.Must(template.New("loop").Parse(`
        {{range For 0 10}}
            i: {{.}}
        {{end}}
    `))
tmpl.Execute(os.Stdout, nil)</code>

Templat ini akan berulang dari 0 hingga 9 dan mencetak nilai i untuk setiap lelaran.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan untuk gelung dengan berkesan dalam templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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