多くの開発シナリオでは、2 つ以上の配列が同じサイズであり、その要素が同じである必要がある並列配列の操作が必要になります。同期された方法でアクセスされます。このような状況では、これらの並列配列を反復処理する方法を理解することが重要になります。
質問:
HTML で並列配列を反復処理するために範囲ブロック内のインデックスを使用するにはどうすればよいですか? /Template?
失敗した試行:
このコードは望ましい結果を達成できません:
{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
解決策:
ここで成功する鍵は、HTML/テンプレートで事前定義されたグローバル テンプレート関数であるインデックス関数を活用することです。これにより、後続の引数による最初の引数のインデックス付けが可能になります。
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 と呼ばれるカスタム テンプレート関数を定義することで、よりクリーンなアプローチを検討してください。この関数は複数のスライスを入力として受け取り、入力スライス内の対応する要素ごとに 1 つずつ、ペアのスライスを生成します。これをテンプレートで使用して、反復プロセスを簡素化できます。
以上が「index」関数を使用してHTML/テンプレートの並列配列を反復処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。