英文:
How can I range a slice of array in go template?
问题
例如,我想对Fields
进行范围选择,但不包括最后一个元素。也许可以这样写:
{{range $Field := $.Fields[:len $Field - 1]}}
我有其他方法吗?谢谢!
英文:
For example, I want to range Fields
except the last one element.
Maybe like:
{{range $Field := $.Fields[:len $Field - 1]}}
Do I have some approaches?
Thx!
答案1
得分: 1
内置的模板切片函数几乎可以满足你的需求。缺少的部分是计算新切片的最后一个索引。为此,在模板中添加一个加法函数:
func add(a, b int) int {
return a + b
}
在解析之前将该函数添加到模板中:
t, err := template.New(name).Funcs(template.FuncMap{"add": add}).Parse(text)
像这样使用该函数:
{{range slice $ 0 (add (len $) -1)}}
{{.}}
{{end}}
英文:
The builtin template slice function almost does what you need. The missing piece is computing the last index of the new slice. To do that, add an addition function to the template:
func add(a, b int) int {
return a + b
}
Add the function to template before parsing:
t, err := template.New(name).Funcs(template.FuncMap{"add": add}).Parse(text)
Use the function like this:
{{range slice $ 0 (add (len $) -1)}}
{{.}}
{{end}}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论