許多開發場景都涉及使用並行數組,其中兩個或多個數組具有相同的大小,並且它們的元素應該是以同步方式存取。在這種情況下,了解如何迭代這些並行數組變得至關重要。
問題:
如何使用範圍區塊內的索引來迭代HTML 中的並行數組/Template?
嘗試失敗:
此程式碼未能達到預期結果:
{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
解:
這裡成功的關鍵是利用索引函數,這是HTML/Template 中預先定義的全域模板函數。它允許透過後續參數對第一個參數進行索引。
index Returns the result of indexing its first argument by the following arguments. Thus index x 1 2 3 is, in Go syntax, x[1][2][3]. Each indexed item must be a map, slice, or array.
初始程式碼失敗,因為它沒有考慮範圍區塊內點的重新分配。要存取原始點,我們可以利用另一個預先定義的範本函數:
When execution begins, $ is set to the data argument passed to Execute, that is, to the starting value of dot.
程式碼的改進版本變成:
{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}
替代方法:
考慮一種更簡潔的方法,定義一個名為zip 的自訂模板函數。此函數將多個切片作為輸入並產生一個成對的切片,一個對應於輸入切片中的每個對應元素。然後可以在模板中使用它來簡化迭代過程。
以上是如何使用「index」函數遍歷 HTML/模板中的平行數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!