Go 模板:刪除範圍循環中的最後一個逗號
在Go 模板中,當迭代一系列元素時,逗號是自動附加在每個元素之後。在某些情況下,這可能是不可取的,例如產生沒有最後尾隨逗號的值列表時。
刪除最後一個逗號的一種方法是在範圍循環期間存取元素的索引。但是,這種方法不適用於地圖,因為它們不為其元素提供索引。
使用 Go 1.11 的解
從 Go 1.11 開始,可以修改模板本身內的模板變數的值。這允許使用以下模板刪除最後一個逗號:
{{$first := true}} {{range $key, $value := $}} {{if $first}} {{$first = false}} {{else}} , {{end}} key:{{$key}} value:{{$value}} {{end}}
模板定義了一個最初設定為 true 的變數 $first 。在範圍循環期間,如果 $first 為 true,則將其設為 false 並且不添加逗號。對於所有後續迭代,都會在元素之前添加一個逗號。
修改範例
這是問題中範例的更新版本,它使用上述技術:
type Map map[string]string m := Map{ "a": "b", "c": "d", "e": "f", } const temp = `{{$first := true}}{{range $key, $value := $}}{{if $first}}{{$first = false}}{{else}}, {{end}}key:{{$key}} value:{{$value}}{{end}}` t := template.Must(template.New("example").Parse(temp)) t.Execute(os.Stdout, m)
此範本將輸出以下內容:
key:a value:b, key:c value:d, key:e value:f
以上是如何刪除 Go 模板範圍循環中的尾隨逗號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!