Menggunakan indeks dalam julat Gelung untuk Lelaran ke atas Tatasusunan Selari dalam Templat HTML
Dalam templat HTML, fungsi julat membenarkan lelaran ke atas tatasusunan atau kepingan, membolehkan penyenaraian elemen individu dalam struktur. Apabila bekerja dengan berbilang tatasusunan selari, selalunya perlu untuk mengulanginya secara serentak, memetakan elemen daripada setiap tatasusunan.
Walau bagaimanapun, pendekatan berikut tidak berfungsi seperti yang diharapkan:
{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
Ini gagal kerana titik (.) dalam blok julat merujuk kepada elemen semasa yang diulang, iaitu tatasusunan kedua. Pendekatan yang betul melibatkan akses kepada nilai titik asal, yang mewakili keseluruhan struktur data yang dihantar ke templat.
Fungsi indeks, fungsi templat yang dipratentukan, membolehkan operasi pengindeksan pada peta, kepingan dan tatasusunan. Menggunakannya, pendekatan yang betul adalah seperti berikut:
{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}
Variasi ini menggunakan rujukan titik dengan betul. $ di hadapan Second mewakili nilai titik asal, membolehkan pengindeksan tatasusunan kedua menggunakan indeks semasa.
Walau bagaimanapun, penyelesaian yang lebih ringkas ialah mencipta fungsi templat tersuai bernama zip yang menerima berbilang kepingan dan mengembalikan sekeping tupel yang mengandungi unsur-unsur daripada setiap keping input. Pendekatan ini menyediakan templat yang lebih bersih dan memudahkan penggunaan semula:
{{range zip .First .Second}} {{$a := $._1}} {{$b := $._2}} {{printf "%v - %v" $a $b}} {{end}}
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengulangi tatasusunan selari dalam templat HTML menggunakan julat dan fungsi indeks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!