set
set
是Ruby
的标准库的类;- 打开
irb
使用,需要先写语句require 'set'
;
code
- irb
$ irb --simple-prompt
>> require 'set'
=> true
- 创建两个集合 ()里面放一个数组即可
>> first = Set.new(["A","B","C","D"])
=> #<Set: {"A", "B", "C", "D"}>
>> second = Set.new(["B","E","F","G"])
=> #<Set: {"B", "E", "F", "G"}>
- difference
# 去掉两个集合公共部分,返回值是剩下的元素
# first 是 A B C D
# second 是 B E F G
# 共同部分是 B
>> first - second
=> #<Set: {"A", "C", "D"}>
>> second - first
=> #<Set: {"E", "F", "G"}>
- 并集
# set是不包含重复元素的
>> first + second
=> #<Set: {"A", "B", "C", "D", "E", "F", "G"}>
- 交集
# 取出公共部分
>> first & second
=> #<Set: {"B"}>
- 与 + 号等价
>> first | second
=> #<Set: {"A", "B", "C", "D", "E", "F", "G"}>
- 异或
# 可以看作是 并集 减去 共同部分
>> first ^ second
=> #<Set: {"E", "F", "G", "A", "C", "D"}>
reference
《The Well-Grounded Rubyist, Second Edition》
(https://www.manning.com/books/the-well-grounded-rubyist-second-edition)
9.5.2.Manipulating set elements
│
♪~ .⊥.
(∴∵)
~T~
┌┴┐
│ │
│ │
/ /
((∠_/
http://emoji.vis.ne.jp/furin1.htm