【发布时间】:2017-03-08 03:37:43
【问题描述】:
我有这样的代码:
package main
import (
"text/template"
"os"
)
func main() {
type Map map[string]string
m := Map {
"a": "b",
"c": "d",
}
const temp = `{{range $key, $value := $}}key:{{$key}} value:{{$value}},{{end}}`
t := template.Must(template.New("example").Parse(temp))
t.Execute(os.Stdout, m)
}
它会输出:
key:a 值:b,key:c 值:d,
但我想要这样的东西:
key:a 值:b,key:c 值:d
我不需要最后一个逗号,如何删除它。我在这里找到了循环数组的解决方案:https://groups.google.com/d/msg/golang-nuts/XBScetK-guk/Bh7ZFz6R3wQJ,但我无法获取地图的索引。
【问题讨论】:
-
在模板中可撤销。您必须直接在您的 Go 代码中执行此操作,或者将 TrimTrailingComma 之类的函数公开给您的模板。
-
谢谢,我会想办法解决的
-
我认为可以通过这个问题/答案找到最优雅的解决方案:stackoverflow.com/questions/10747054/…
-
@jboschiero 优雅的解决方案适用于切片,不适用于地图。
-
@Volker 从 Go 1.11 开始就有可能。见answer below。
标签: go go-templates