Banyak senario pembangunan melibatkan kerja dengan tatasusunan selari, di mana dua atau lebih tatasusunan mempunyai saiz yang sama dan elemennya hendaklah diakses secara serentak. Memahami cara untuk lelaran melalui tatasusunan selari ini menjadi penting dalam situasi sedemikian.
Soalan:
Bagaimanakah indeks dalam blok julat digunakan untuk lelaran melalui tatasusunan selari dalam HTML /Templat?
Percubaan Gagal:
Kod ini gagal mencapai hasil yang diingini:
{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
Penyelesaian:
Kunci untuk berjaya di sini ialah memanfaatkan fungsi indeks, fungsi templat global yang dipratentukan dalam HTML/Templat. Ia membenarkan pengindeksan argumen pertama dengan argumen seterusnya.
index Returns the result of indexing its first argument by the following arguments. Thus index x 1 2 3 is, in Go syntax, x[1][2][3]. Each indexed item must be a map, slice, or array.
Kod awal gagal kerana ia tidak mengambil kira penugasan semula titik dalam blok julat. Untuk mengakses titik asal, kami boleh menggunakan fungsi templat pratakrif lain:
When execution begins, $ is set to the data argument passed to Execute, that is, to the starting value of dot.
Versi kod yang dipertingkatkan menjadi:
{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}
Pendekatan Alternatif:
Pertimbangkan pendekatan yang lebih bersih dengan mentakrifkan fungsi templat tersuai yang dipanggil zip. Fungsi ini mengambil berbilang keping sebagai input dan menjana sekeping pasangan, satu untuk setiap elemen yang sepadan dalam kepingan input. Ia kemudiannya boleh digunakan dalam templat untuk memudahkan proses lelaran.
Atas ialah kandungan terperinci Bagaimana untuk Lelaran Melalui Tatasusunan Selari dalam HTML/Templat menggunakan Fungsi `index`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!