在 Go 模板中,经常需要同时迭代多个数组。这可能是一个挑战,特别是当数组具有不同长度或无法轻松重组时。这是关于如何克服这一挑战并有效地迭代多个数组的综合指南。
考虑以下场景:
您有两个结构体, Schedule 和Combo,其中 Schedule 包含 Combo 结构数组。您需要迭代每个 Combo 并在 HTML 页面上显示其声音、音量和等待数据。但是,数组包含不同的长度,并且您无法修改结构,因为它们在项目的其他地方使用。
为了解决这个问题,我们可以使用“多范围”循环技术,它允许我们同时迭代多个数组。具体方法如下:
{{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}}
在上面的模板中:
以上是如何在 Go 模板中同时迭代多个长度不等的数组?的详细内容。更多信息请关注PHP中文网其他相关文章!