Lelaran Melalui Tatasusunan Selari dengan Julat dan Indeks
Bagaimanakah kita boleh lelaran melalui dua tatasusunan selari dengan saiz yang sama dan senaraikan item daripada kedua-dua tatasusunan menggunakan julat serentak?
Kod berikut menunjukkan percubaan yang tidak berjaya:
<code class="go">{{range $i, $e := .First}}{{ $e }} - {{ index .Second $i }}{{end}}</code>
Untuk menangani cabaran ini, kami boleh menggunakan fungsi templat global yang telah ditetapkan, indeks. Fungsi ini membolehkan kami mengindeks hujah pertama dengan hujah berikutnya, serupa dengan cara pengindeksan berfungsi dalam Go.
<code class="go">index x 1 2 3</code>
sama dengan:
<code class="go">x[1][2][3]</code>
Walau bagaimanapun, dalam blok julat, dot telah ditetapkan semula. Untuk kembali ke titik asal, kami menggunakan ciri templat terbina dalam yang menetapkan $ pada mulanya kepada argumen data yang diserahkan kepada Laksanakan. Oleh itu, kami boleh mengubah suai kod kami:
<code class="go">{{range $i, $e := .First}}{{$e}} - {{index $.Second $i}}{{end}}</code>
Sebagai alternatif kepada ini, mungkin lebih bersih untuk mencipta fungsi templat dipanggil zip yang mengubah berbilang keping menjadi sekeping pasangan nilai.
Atas ialah kandungan terperinci Bagaimana untuk Mengulang Melalui Tatasusunan Selari dengan Julat dan Indeks dalam Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!