テンプレートの For ループ
Go のテンプレートは、動的コンテンツを生成する強力な方法を提供します。テンプレートを使用する場合の一般的な要件の 1 つは、ループの必要性です。この記事では、テンプレート内で for ループを実装する方法について説明します。
準備された配列での Range の使用
テンプレート内でループを作成する最も簡単な方法は、range キーワードを使用することです。準備された配列を使用します。たとえば、次のコードを考えてみましょう。
<code class="go">type Person struct { Name string Age int } func main() { people := []Person{{"John", 30}, {"Mary", 25}} tmpl := template.Must(template.New("loop").Parse(` {{range .}} Name: {{.Name}} Age: {{.Age}} {{end}} `)) tmpl.Execute(os.Stdout, people) }</code>
このテンプレートは、人物のスライスを反復処理し、各人物の名前と年齢を出力します。
外部関数の使用
もう 1 つの方法は、外部関数を使用してループを作成することです。これは、ループにさらなる柔軟性や機能性が必要な場合に役立ちます。たとえば、次の関数は単純な for ループを生成できます:
<code class="go">func For(start, end int) chan int { c := make(chan int) go func() { for i := start; i < end; i++ { c <- i } close(c) }() return c }</code>
この関数は開始点と終了点を受け取り、範囲内の各整数を反復するチャネルを返します。この関数をテンプレートで使用するには、次の操作を実行できます:
<code class="go">tmpl := template.Must(template.New("loop").Parse(` {{range For 0 10}} i: {{.}} {{end}} `)) tmpl.Execute(os.Stdout, nil)</code>
このテンプレートは 0 から 9 まで反復し、反復ごとに i の値を出力します。
以上がGo テンプレートで for ループを効果的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。