go - 如何在 go 模板中排列数组的一部分?
问题描述
例如,我想要Fields
除最后一个元素之外的范围。
也许像:
{{range $Field := $.Fields[:len $Field - 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}}
操场示例。