我正在执行一个带有 2 个并行数组(相同大小)的模板,并且我想同时列出两个数组中的项目,如何在范围内使用索引?
这显然不起作用:
{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
我正在执行一个带有 2 个并行数组(相同大小)的模板,并且我想同时列出两个数组中的项目,如何在范围内使用索引?
这显然不起作用:
{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
预定义的全局模板函数之一是index
.
index
返回通过以下参数对其第一个参数进行索引的结果。因此index x 1 2 3
,在 Go 语法中,x[1][2][3]
. 每个索引项必须是map
、slice
或array
。
所以你在正确的轨道上。唯一的问题是您没有考虑在块dot
内重新分配的事实。range
所以你需要回到原来的点,为此我们有以下
开始执行时,
$
设置为传递给 Execute 的数据参数,即设置为 dot 的起始值。
所以(假设你的模板中没有其他事情发生)你应该能够做到:
{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}
不过就个人而言,我会创建一个名为的模板函数zip
,该函数接受多个切片并返回每对值的切片。它在您的模板中看起来会更干净,并且可能会在某个地方重用。