我可以在这样的模板中获得切片的大小
{{$size := len .Things}}
我可以在模板中索引切片,如下所示:
{{index .Things 4}}
但是
{{index .Things $size}}
给出“超出范围”错误,因为对切片进行索引是从零开始的。
我是否已完成所有功能定义或是否可以使用算术?
即。我如何在golang模板中执行此操作https://stackoverflow.com/a/22535888。
答案 0 :(得分:1)
默认情况下没有可用的算术,但您可以使用add FuncMap此功能。
以下是如何添加涵盖此案例和其他方案的“添加”功能:
t := template.Must(template.New("").Funcs(template.FuncMap{
"add": func(a, b int) int { return a + b },
}).Parse(theTemplate)
在模板中使用它,如下所示:
{{index .Things (add $size -1)}}
答案 1 :(得分:1)
在go模板中可以被视为更多"被动"比其他语言或某些框架。被动视图的概念是它们不包含太多逻辑,但会传递所有数据。
所以你可以通过" LastThing"到你的模板,它已经分配了最后一件事。
这不能直接回答您的问题,但这只是您可以考虑的替代方案。