首页 > 后端开发 > Golang > 如何在 Go 模板中同时迭代多个长度不等的数组?

如何在 Go 模板中同时迭代多个长度不等的数组?

Susan Sarandon
发布: 2024-12-03 07:58:10
原创
188 人浏览过

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

使用 Go 模板同时迭代多个数组

简介

在 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}}
登录后复制

说明

在上面的模板中:

  • 我们使用外部范围循环迭代 Schedule.Combos 数组。
  • 为了访问 Volumes 和 Waits 数组,我们创建两个新变量 $volumes 和 $waits,并分配它们分别是 .Volumes 和 .Waits 的值。
  • 然后,我们使用内部范围循环来迭代 Sounds 数组,并在该循环中,我们使用索引访问适当索引处的 Volumes 和 Waits 数组函数。

以上是如何在 Go 模板中同时迭代多个长度不等的数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板