本文介绍了使用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内的范围检测数组中的最后一项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 17:11