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

如何識別 Go 模板範圍中的最後一項?

Patricia Arquette
發布: 2024-11-08 02:26:01
原創
325 人瀏覽過

How to Identify the Last Item in a Go Template Range?

識別模板範圍中的最後一項

在 Go 模板中,識別範圍中的最後一項可能具有挑戰性。內建的 $i 變數僅代表目前索引,因此很難確定迭代何時結束。

為了克服這個障礙,解決方法是使用自訂函數,將 $i 變數與反射結合基於方法來確定正在迭代的資料結構的長度。透過將目前索引與長度減一進行比較,我們可以準確地檢測最終的迭代。

以下是如何實現此自訂函數的範例:

func last(i int, a interface{}) bool {
    return i == reflect.ValueOf(a).Len() - 1
}
登入後複製

透過註冊此函數作為FuncMap 的一部分並在範本中使用它,您可以輕鬆輸出所需的逗號分隔列表,並將“and”附加到最後一項。

template.Must(template.New("abc").Funcs(fns).Parse(`{{range $i, $e := .}}{{if $i}}, {{end}}{{if last $i $}}and {{end}}{{$e}}{{end}}.`))
登入後複製

此解決方案提供了一種可重複使用且有效的方法識別模板範圍中的最後一項,增強 Go 模板資料呈現的靈活性。

以上是如何識別 Go 模板範圍中的最後一項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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