【HUGO】Seq関数の使い方

【HUGO】Seq関数の使い方

HUGOのseq関数の仕様について解説しています。

seq関数の機能と文法

連番の数値が入った配列を作ってくれる関数です。

必須の引数が1つとオプションの引数を2つ持っています。

//第1引数 シーケンスの長さを指定
$array := seq 3 // $array[1 2 3]

//第2引数 始点と終点を指定
$array := seq 10 7 //$array[10 9 8 7]

//第3引数 インクリメントを指定
$array := seq 2 2 10 //$array[2 4 6 8 10]

第3引数と言いながらインクリメントを指定する場合は2番目がインクリメントになるので少しややこしいです。

高度な使い方

afterを使うことで配列の始まりをずらすことができます。

 {{range $array := after 1 (seq 5) }}
    配列の中身は{{.}}
 {{end}}
 
 /*
 出力結果
 
 配列の中身は2 3 4 5
 */

例では数値を直接渡していますが、afterに渡す数値を変数にしておけば流動的にシーケンスの始まる番号を変更できます。

0始まりのindexを使用したい場合は受け取る側の変数を2つ宣言してあげましょう。

  {{ range $index, $value := seq 3 }}
    添え字{{ $index }} : {{ $val }}
  {{ end }}

  /*
  出力結果

  添え字0 : 値1 添え字1 : 値2 添え字2 : 値3
  */

参考

公式ドキュメント

Hugo テンプレートで数値によるループ処理を行うメント