collections.Union
給定兩個數組(或切片)A 和 B,這個函數會返回一個新數組,包含屬於 A 或 B 或兩者的元素或對象。
{{ union (slice 1 2 3) (slice 3 4 5) }}
<!-- 返回 [1 2 3 4 5] -->
{{ union (slice 1 2 3) nil }}
<!-- 返回 [1 2 3] -->
{{ union nil (slice 1 2 3) }}
<!-- 返回 [1 2 3] -->
{{ union nil nil }}
<!-- 返回錯誤,因為兩個數組/切片必須是相同類型 -->
用作 OR 過濾條件
此功能也可以用來在 where
中作為 OR
過濾條件:
{{ $pages := where .Site.RegularPages "Type" "not in" (slice "page" "about") }}
{{ $pages = $pages | union (where .Site.RegularPages "Params.pinned" true) }}
{{ $pages = $pages | intersect (where .Site.RegularPages "Params.images" "!=" nil) }}
上述代碼範例抓取常規頁面,其類型不是 page
或 about
,除非它們被固定。同時,最後排除所有沒有設置 images
參數的頁面。
請參見 intersect 用於 AND
操作。