此頁面說明集合管線模式中的操作。如需更多背景,請閱讀

串接

將集合串接成單一集合

ruby…
[1,2,3].concat([4,5])
# => [1, 2, 3, 4, 5]
clojure…
(concat [1 2 3] [4 5])
;; => (1 2 3 4 5)

如果您想要串接兩個以上的集合,您會發現不同的語言有不同的方法。

ruby…
[1,2,3].concat([4,5]).concat([6])
# => [1, 2, 3, 4, 5, 6]
clojure…
(concat [1 2 3] [4 5] [6])
;; => (1 2 3 4 5 6)

允許函式採用引數清單是自然的 lisp 風格,因此非常適合串接。Ruby 的 concat 函式只採用一個引數,您可以將其視為限制,但透過串接 concat 可以輕鬆處理。

支援中綴運算子的語言通常有運算子來串接集合,在 Ruby 中為「+」。

ruby…
[1,2,3] + [4,5] + [6]
# => [1, 2, 3, 4, 5, 6]

每當您使用中綴運算子時,您需要使用括號將它們分組,才能讓它們正確串接。

ruby…
([1,2,3] + [4,5] + [6]).select(&:odd?)
# => => [1, 3, 5]

而且與中綴運算子一樣,它們只能在串接的開頭正常運作。