HTML/テンプレートで範囲内のインデックスを使用して並列配列を反復処理する方法
HTML/テンプレートで、範囲構造をIndex 関数を使用すると、複数の配列を並行して反復処理できます。ただし、範囲ブロック内のインデックスを使用して配列の要素にアクセスしようとすると、一般的な落とし穴が発生します。
次のコードを考えてみましょう:
{{range $i, $e := .First}}{{$e}} - {{index .Second $i}}{{end}}
このコードは、配列を反復処理しようとします。 .First と .Second を並行して実行します。ただし、範囲ブロック内のドット (.) 変数が .First の値に再割り当てされているため、正しく動作しません。この問題を解決するには、データ セット全体を表す元のドット変数にアクセスする必要があります。
インデックス関数は、最初の引数をインデックス付けされる配列として受け取り、後続の引数をインデックス値として受け取ります。したがって、コードを次のように変更できます。
{{range $i, $e := .First}}{{$e}} - {{index $.Second $i}}{{end}}
ここで、$ は元のドット変数を表し、Execute に渡されるデータ引数が含まれます。 $ を使用すると、インデックス $i を使用して .Second の要素にアクセスできます。
あるいは、よりクリーンなアプローチは、複数のスライスを受け入れ、値の各ペアのスライスを返す zip というテンプレート関数を作成することです。 。これにより、テンプレート内で複雑なインデックスを作成する必要がなくなり、コードの可読性が向上します。
以上がHTML/テンプレートの範囲内のインデックスを使用して並列配列から要素にアクセスする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。