此页面描述了集合管道模式中的一个操作。有关更多上下文,请阅读

连接

将集合连接成一个集合

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]

与中缀运算符一样,它们除了在链的开头之外,效果都不好。