一尘不染

如何使用html / template中范围内的索引来遍历并行数组?

go

我正在执行带有2个并行数组(相同大小)的模板,并且我想并行列出两个数组中的项目,如何在范围内使用索引?

这显然不起作用:

{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}

阅读 201

收藏
2020-07-02

共1个答案

一尘不染

预定义的全局模板功能之一index

index 返回通过以下参数索引其第一个参数的结果。因此index x 1 2 3,在Go语法中,
x[1][2][3]。每个索引项必须是mapslicearray

因此,您处在正确的轨道上。唯一的问题是您不考虑dot已在range块内重新分配了该事实。

因此,您需要返回到原始点,为此,我们需要执行以下操作

开始执行时,$将其设置为传递给Execute的数据参数,即dot的起始值。

因此(假设模板中没有其他操作),您应该可以执行以下操作:

{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}

不过,就我个人而言,我将创建一个名为的模板函数zip,该模板函数接受多个切片并返回每对值的切片。它在您的模板中看起来更干净,并且可能在某处被重用。

2020-07-02