首页 > 后端开发 > Golang > 正文

如何使用 range 和 index 函数迭代 HTML 模板中的并行数组?

Mary-Kate Olsen
发布: 2024-11-05 01:07:02
原创
612 人浏览过

How can I iterate over parallel arrays in HTML templates using range and the index function?

在 HTML 模板中利用范围内的索引循环迭代并行数组

在 HTML 模板中,range 函数允许对数组进行迭代或切片,从而可以列出结构中的各个元素。使用多个并行数组时,通常需要同时迭代它们,映射每个数组中的元素。

但是,以下方法无法按预期运行:

{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
登录后复制

这失败,因为范围块内的点 (.) 引用当前正在迭代的元素,即第二个数组。正确的方法是访问原始点值,它代表传递给模板的整个数据结构。

索引函数是一个预定义的模板函数,可以对映射、切片和数组进行索引操作。使用它,正确的方法如下:

{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}
登录后复制

此变体正确使用点引用。 Second 前面的 $ 表示原始点值,从而可以使用当前索引对第二个数组进行索引。

但是,更简洁的解决方案是创建一个名为 zip 的自定义模板函数,它接受多个切片并返回包含每个输入切片中的元素的元组切片。这种方法提供了更清晰的模板并有助于重用:

{{range zip .First .Second}}
  {{$a := $._1}}
  {{$b := $._2}}
  {{printf "%v - %v" $a $b}}
{{end}}
登录后复制

以上是如何使用 range 和 index 函数迭代 HTML 模板中的并行数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!