Tim*_*ell 3 templates go slice
我可以在这样的模板中获取切片的大小
{{$size := len .Things}}
Run Code Online (Sandbox Code Playgroud)
我可以在模板中索引一个切片,如下所示:
{{index .Things 4}}
Run Code Online (Sandbox Code Playgroud)
但
{{index .Things $size}}
Run Code Online (Sandbox Code Playgroud)
给出“超出范围”错误,因为索引切片是从零开始的。
我是否已经完成了所有定义事物的函数,或者是否有我可以使用的算术?
即我如何在 golang 模板中执行此操作/sf/answers/1577512191/ 。
定义负函数:/sf/answers/1738663531/
默认情况下没有可用的算术,但您可以使用FuncMap添加此功能。
以下是如何添加涵盖此案例和其他场景的“add”函数:
t := template.Must(template.New("").Funcs(template.FuncMap{
"add": func(a, b int) int { return a + b },
}).Parse(theTemplate)
Run Code Online (Sandbox Code Playgroud)
在模板中使用它,如下所示:
{{index .Things (add $size -1)}}
Run Code Online (Sandbox Code Playgroud)