Ruby 标准库实用功能全解析
1. Set 库:集合操作利器
Set 库用于实现各种形式的集合,集合是由唯一值组成的集合,唯一性通过 eql?
和 hash
方法确定。同时,它还提供了方便的方法,可从可枚举对象构建集合。
1.1 基本集合操作
require 'set'
set1 = Set.new([:bear, :cat, :deer])
puts set1.include?(:bat) # 输出: false
set1.add(:fox)
puts set1 # 输出: #<Set: {:cat, :deer, :fox, :bear}>
partition = set1.classify {|element| element.to_s.length }
puts partition # 输出: {3=>#<Set: {:cat, :fox}>, 4=>#<Set: {:deer, :bear}>}
set2 = [ :cat, :dog, :cow ].to_set
puts set1 | set2 # 输出: #<Set: {:cat, :dog, :deer, :cow, :fox, :bear}>
puts set1 & set2 # 输出: #<Set: {:cat}>
puts set1 - set2 # 输出: #<Set: {:deer, :fox, :bear}>
puts set1 ^ set2 # 输出: #<Set: