Menyesuaikan Output Indeks dalam Templat Go: Aritmetik dalam Templat
Templat Dalam Go, tindakan julat membenarkan lelaran yang mudah melalui tatasusunan, menyediakan kedua-dua elemen dan indeks berasaskan sifarnya. Walau bagaimanapun, untuk senario tertentu, anda mungkin perlu mengubah suai indeks yang dipaparkan untuk bermula daripada nilai bukan sifar.
Mengapa Pendekatan Awal Gagal
Pada mulanya, percubaan untuk melaksanakan operasi aritmetik dalam templat, seperti "{{$index 1}}", menghasilkan ralat "sintaks nombor haram". Ini kerana bahasa templat tidak menyokong operasi aritmetik secara semulajadi.
Penyelesaian: Fungsi Tersuai
Untuk mencapai gelagat yang diingini, adalah perlu untuk menentukan fungsi tersuai yang menjalankan operasi aritmetik di luar templat. Dalam kes ini, kami mencipta fungsi yang dipanggil "inc" yang menambah indeks yang diberikan sebanyak 1.
Berikut ialah kod templat Go yang diubah suai yang menggabungkan fungsi "inc":
tmpl, err := template.New("test").Funcs(funcMap).Parse( `{{range $index, $element := .}} Number: {{inc $index}}, Text:{{$element}} {{end}}` )
The fungsi tersuai ditakrifkan sebagai berikut:
func inc(i int) int { return i + 1 }
Penggunaan
Untuk menggunakan fungsi tersuai, ia mesti didaftarkan dengan FuncMap templat. Contoh yang disediakan memulakan FuncMap dan menambahkan fungsi "inc" padanya, membenarkan templat mengaksesnya.
Dalam senario ini, templat itu berulang melalui sekeping rentetan, memaparkan indeks yang diubah suai dan elemen yang sepadan.
Kesimpulan
Dengan mencipta fungsi tersuai, anda boleh melanjutkan keupayaan templat Go untuk melaksanakan operasi yang tidak disokong secara asli dalam sintaks bahasa templat. Ini membolehkan fleksibiliti yang lebih besar dan membolehkan operasi yang kompleks seperti manipulasi aritmetik dalam templat.
Atas ialah kandungan terperinci Cara Menyesuaikan Output Indeks dalam Templat Go: Bolehkah Anda Melakukan Aritmetik dalam Templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!