where | 配列条件フィルターする

こんにちはnasustです。

whereは、SQLのwhereと同じような条件を記述でフィルターして新たな配列を返します。

see also:  where | Hugo

whereはよく使うテンプレート関数です。 Hugoは様々なウェブサイトのコンテンツの配列があります。 ウェブサイト全ての記事の配列、セクションの配列。 whereで必要な要素をフィルターして使用する事が良くあります。

書式

$array := where COLLECTION KEY [OPERATOR] MATCH
html

{{ range where .Pages "Section" "foo" }}
  {{ .Content }}
{{ end }}
html

.Pagesの変数"Section"が"foo"であるものをフィルターしています。

OPERATOR

演算子を使用した例です。

{{ range where .Pages "Section" "!=" "foo" }}
   {{ .Content }}
{{ end }}
html

.Pagesの変数"Section"が"foo"でないものをフィルターしています。

=, ==, eq

一致した場合、マッチします。

!=, <>, ne

一致しない場合、マッチします。

>=, ge

以上である場合、マッチします。

>, gt

より大きい場合、マッチします。

<=, le

以下である場合、マッチします。

<, lt

より小さい場合、マッチします。

in

配列またはスライスに含まれている値と一致する場合、マッチします。

not in

配列またはスライスに含まれている値と一致しない場合、マッチします。

intersect

配列同士の比較で共通する場合、マッチします。

注意点

数値で比較する場合、型が違う為に正常な結果を得られない場合があります。 その場合は、 int などを使用して型変換してから指定します。

prev next