首頁 > 後端開發 > Golang > 主體

如何在 Go 範本中遞增索引:克服「非法數字語法」錯誤

DDD
發布: 2024-11-21 10:18:14
原創
383 人瀏覽過

How to Increment Indices in Go Templates: Overcoming the

Go 範本中的算術運算:克服索引增量挑戰

使用 Go 範本時,了解如何執行算術運算至關重要。常見的用例是將索引調整為從 1 而不是 0 開始。但是,開箱即用的模板語法並不為此提供直接支援。

問題:非法數字語法錯誤

如問題中所述,嘗試使用表達式{{$index 1}} 增加從零開始的索引會導致“非法數字語法: “ 錯誤。這是因為 Go 模板語言不允許直接在模板表達式中進行算術運算。

解決方案:自訂函數來救援

要克服這個限制,我們需要建立執行必要算術運算的自訂函數。在這種情況下,一個簡單的增量函數就足夠了。

以下是如何定義和使用名為「inc」的自訂函數來增量索引的範例:

funcMap := template.FuncMap{
    "inc": func(i int) int {
        return i + 1
    },
}
登入後複製

然後我們註冊在解析範本文字之前,將此自訂函數映射到模板:

tmpl, err := template.New("test").Funcs(funcMap).Parse(`{{range $index, $element := .}}`)
登入後複製

現在,我們可以使用“inc”函數來遞增模板表達式中的索引:

{{range $index, $element := .}}
  Number: {{inc $index}}, Text:{{$element}}
{{end}}
登入後複製

透過定義自訂函數並將其註冊到模板中,我們可以擴展Go 範本的功能並執行算術運算,例如根據需要遞增索引。

以上是如何在 Go 範本中遞增索引:克服「非法數字語法」錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板