本文介绍了使用go-templates内的范围检测数组中的最后一项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此程序仅输出
但我想打印
如您所见,逗号是在数组的每个项目之后打印的.
As you can see the comma is printed after each items of an array.
package main
import "os"
import "text/template"
func main() {
params := map[string]interface{}{
"items": [3]int{1, 4, 2},
}
tpl := "{{range $i, $el := .items}}{{$el}},{{end}}"
lister, _ := template.New("foo").Parse(tpl)
lister.Execute(os.Stdout, params)
}
是否可以更改{{range $i, $el := .items}}{{$el}},{{end}}
,并确保最后一项将打印.".而不是,"
Is there a way to change {{range $i, $el := .items}}{{$el}},{{end}}
and be sure that last item will print "." instead of ","
推荐答案
您可以使用
tpl := "{{range $i, $el := .items}}{{if $i}},{{end}}{{$el}}{{end}}."
实现这一目标.诀窍是先发出逗号分隔符,而不是范围中的第一项.
to achieve that. The trick is to emit the comma separator first, but not for the first item in the range.
这篇关于使用go-templates内的范围检测数组中的最后一项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!