模板中的 For 循環
Go 中的模板提供了一種產生動態內容的強大方法。使用範本時的常見要求是需要循環。本文探討如何在模板中實作 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>
此範本將迭代人員切片並列印每個人的姓名和年齡。
使用外部函數
另一種方法是使用外部函數來建立循環。當您的循環需要更多靈活性或功能時,這會很有用。例如,下列函數可以產生一個簡單的 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中文網其他相關文章!