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

Bagaimana untuk Mengulangi Berbilang Tatasusunan Secara serentak dalam Templat Go?

Linda Hamilton
Lepaskan: 2024-12-18 18:01:17
asal
818 orang telah melayarinya

How to Iterate Over Multiple Arrays Simultaneously in Go Templates?

Templat Pergi: Mengulang Berbilang Tatasusunan Serentak

Semasa mengerjakan projek, anda mungkin menghadapi keperluan untuk mengulangi berbilang tatasusunan serentak dalam Pergi templat. Keadaan ini timbul apabila anda mempunyai struktur data seperti di bawah dan memerlukan setiap elemen daripada tatasusunan ini untuk dikumpulkan bersama dalam output.

type Schedule struct {
    Description   string
    ControlNights int
    PlayNights    int
    StartDay      int
    Combos        []Combo
}

type Combo struct {
    From    time.Time
    Every   int
    Until   time.Time
    Sounds  []string
    Volumes []int
    Waits   []int
}
Salin selepas log masuk

Lelaran Atas Gabungan

Untuk memaparkan data bagi setiap kombo secara individu, anda boleh menggunakan gelung julat yang berulang pada tatasusunan Jadual.Kombo. Ini akan berulang melalui setiap kombo. Walau bagaimanapun, ini tidak mencukupi untuk memaparkan data yang anda perlukan.

Menggabungkan Tatasusunan ke dalam Baris

Untuk mengumpulkan data daripada tatasusunan berbeza ke dalam baris, di mana setiap baris mengandungi data daripada Bunyi tatasusunan , Jilid dan Menunggu, anda boleh menggunakan templat dinamik. Teknik ini membolehkan anda memanipulasi dan mengubah suai data dalam templat itu sendiri.

Templat Dinamik untuk Pengumpulan

Pertimbangkan templat berikut:

{{ range .Schedule.Combos }}
<div class="container">
    <div class="row">
        <div class="col">
            <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>
        <div class="col">
            <div class="card mt-2">
                <div class="card-body">
                    <h5 class="card-title"><strong>Sounds</strong></h5>
                    {{ range .Sounds }}
                    <h5 class="card-text">Sound {{.}}</h5>
                    {{ end }}
                </div>
            </div>
        </div>
Salin selepas log masuk

Untuk mengumpulkan Bunyi, Jilid dan Tunggu bersama-sama, anda boleh membuat pembolehubah templat baharu yang menggabungkan ketiga-tiganya tatasusunan.

{{ $mergedArrays := .Sounds, .Volumes, .Waits }}
Salin selepas log masuk

Lelaran Atas Tatasusunan Gabungan

Dengan tatasusunan gabungan yang tersedia, anda boleh mengulanginya menggunakan gelung bersarang:

{{ range $index, $mergedArray := $mergedArrays }}
    {{ $sound := $mergedArray[0] }}
    {{ $volume := $mergedArray[1] }}
    {{ $wait := $mergedArray[2] }}
    <li>{{ $sound }} - {{ $volume }} - {{ $wait }}</li>
{{ end }}
Salin selepas log masuk

Dalam gelung bersarang ini, anda mengakses elemen individu tatasusunan gabungan dan memaparkannya dengan sewajarnya.

Pendekatan ini membolehkan anda mengumpulkan data daripada tatasusunan Sounds, Volumes dan Waits ke dalam baris yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Mengulangi Berbilang Tatasusunan Secara serentak dalam Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan