去替代 python loop.last

我希望使用 Go 模板循环遍历数组,并且想向循环中的最后一项添加一个额外的字符串。


在python中,我可以做到


{% for host in hosts %}

{{ host }}{% if loop.last %} ;{% endif %}

{% endfor %}

希望用 Go 实现同样的事情,下面是 Go 等价物的片段。


{{ range $host := $hosts }}

{{$host}}

{{ end }}

谢谢。


明月笑刀无情
浏览 216回答 2
2回答

慕田峪9158850

另一种方法是定义递减函数,例如,    "dec": func(n int) int { return n - 1 },然后您可以使用该dec函数来计算最后一个元素,例如,{{$last := dec (len $hosts)}}{{range $i, $host := $hosts}}{{$host}}{{if eq $i $last}} ;{{end}}{{end}}当然,如果 Go 模板允许减法会更容易,这样你就可以编写{{$last := (len $hosts) - 1}}. 毕竟,他们坚持在空格减号之前或之后有一个空格,那么为什么不允许简单的算术呢?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go