首頁 >後端開發 >Golang >如何刪除 Go 模板範圍循環中的尾隨逗號?

如何刪除 Go 模板範圍循環中的尾隨逗號?

Barbara Streisand
Barbara Streisand原創
2024-12-09 17:19:09391瀏覽

How to Remove the Trailing Comma in Go Template Range Loops?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn