ホームページ >バックエンド開発 >Golang >Golang テンプレートを使用して HTML 行を複数回繰り返す方法

Golang テンプレートを使用して HTML 行を複数回繰り返す方法

DDD
DDDオリジナル
2024-12-16 07:14:14513ブラウズ

How to Repeat HTML Lines Multiple Times Using Golang Templates?

Golang テンプレートでの HTML の反復

Golang では、テンプレート内の要素のリストを反復するときに、{{range }} アクション。ただし、反復処理には配列またはスライスが必要です。 HTML 行を複数回繰り返すには、空のスライスを作成し、ゼロ値または特定の値を設定します。

ゼロ値スライスの使用

必要な反復回数を表す空のスライス make([]struct{}, n) を作成できます。次に、テンプレート内で、{{range}}${} 構文を使用してスライスを反復処理します。例:

tmpl := template.Must(template.New("").Parse(`
<ul>
{{range $idx, $e := .}}
    <li><a href="/?p={{idx}}">{{$idx}}</a></li>
{{end}}
</ul>`))
n := 5
tmpl.Execute(w, make([]struct{}, n))

塗りつぶされたスライスの使用

または、スライスを特定の値で塗りつぶすこともできます。このアプローチにより、HTML コード内のインデックス ($idx) の使用をスキップできます。例:

tmpl := template.Must(template.New("").Parse(`
<ul>
{{range .}}
    <li><a href="/?p={{.}}">{{.}}</a></li>
{{end}}
</ul>`))
values := make([]int, 5)
for i := range values {
    values[i] = i + 1
}
tmpl.Execute(w, values)

ゼロ値スライスとカスタム関数の使用

もう 1 つのオプションは、スライス インデックスに 1 を加算し、値を返すカスタム関数を作成することです。結果。これにより、数値を 1 ずつ増やしながらスライス インデックスを使用できるようになります。例:

tmpl := template.Must(template.New("").Funcs(template.FuncMap{
    "Add": func(i int) int { return i + 1 },
}).Parse(`
<ul>
{{range $idx, $e := .}}{{$idx := (Add $idx)}}
    <li><a href="/?p={{$idx}}">{{$idx}}</a></li>
{{end}}
</ul>`))
n := 5
tmpl.Execute(w, make([]struct{}, n))

これらのアプローチにより、特定の要件に基づいて HTML 行を複数回繰り返す柔軟な方法が提供されます。

以上がGolang テンプレートを使用して HTML 行を複数回繰り返す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。