Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengulangi Berbilang Tatasusunan yang Tidak Sama Panjang Secara serentak dalam Templat Go?

Bagaimana untuk Mengulangi Berbilang Tatasusunan yang Tidak Sama Panjang Secara serentak dalam Templat Go?

Susan Sarandon
Susan Sarandonasal
2024-12-03 07:58:10135semak imbas

How to Iterate Over Multiple Arrays of Unequal Lengths Simultaneously in Go Templates?

Menyalakan Berbilang Tatasusunan Serentak Menggunakan Templat Go

Pengenalan

Templat Dalam Go, keperluan sering timbul untuk mengulangi berbilang tatasusunan serentak. Ini boleh menjadi satu cabaran, terutamanya apabila tatasusunan mempunyai panjang yang berbeza atau tidak boleh distruktur semula dengan mudah. Berikut ialah panduan komprehensif tentang cara mengatasi cabaran ini dan lelaran dengan cekap pada berbilang tatasusunan bersama-sama.

Pernyataan Masalah

Pertimbangkan senario berikut:

Anda mempunyai dua struct, Jadual dan Combo, di mana Jadual mengandungi pelbagai struct Combo. Anda perlu mengulangi setiap Kombo dan memaparkan data Bunyi, Jilid dan Waits pada halaman HTML. Walau bagaimanapun, tatasusunan mengandungi panjang yang berbeza-beza, dan anda tidak boleh mengubah suai struct kerana ia digunakan di tempat lain dalam projek.

Penyelesaian

Untuk menyelesaikan masalah ini, kita boleh menggunakan "berbilang julat" teknik gelung, yang membolehkan kami mengulangi berbilang tatasusunan secara serentak. Begini caranya:

{{range .Schedule.Combos}}
<div class="container">
    <div class="row">
        <div class="card mt-2 ml-2">
            <div class="card-body">
                <h5 class="card-title">
                    <strong>Timing</strong>
                </h5>
                <h5 class="card-text">
                    Play every {{.Every}} mins
                </h5>
                <h5 class="card-text">
                    From time {{TimeOfDayToString .From}}
                </h5>
                <h5 class="card-text">
                    Until {{TimeOfDayToString .Until}}
                </h5>
            </div>
        </div>
        <div class="col">
            <div class="card mt-2">
                <div class="card-body">
                    <h5 class="card-title">
                        <strong>Sounds</strong>
                    </h5>
                    {{ $volumes := .Volumes }}
                    {{ $waits := .Waits }}
                    {{range $index,$sound := .Sounds }}
                        <h5 class="card-text">
                            Sound {{.}}
                            Volume {{index $volumes $index}}
                            Wait {{index $waits $index}}
                        </h5>
                    {{end}}
                </div>
            </div>
        </div>
    </div>
</div>
{{end}}

Penjelasan

Dalam templat di atas:

  • Kami mengulangi tatasusunan Jadual.Kombo menggunakan gelung julat luar.
  • Untuk mengakses tatasusunan Volumes dan Waits, kami mencipta dua pembolehubah baharu, $volume dan $waits, dan memberikan mereka nilai .Volumes dan .Waits masing-masing.
  • Kami kemudiannya menggunakan gelung julat dalam untuk mengulangi tatasusunan Bunyi, dan dalam gelung itu, kami mengakses tatasusunan Volumes dan Waits pada indeks yang sesuai menggunakan fungsi indeks.

Atas ialah kandungan terperinci Bagaimana untuk Mengulangi Berbilang Tatasusunan yang Tidak Sama Panjang Secara serentak 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