Standard Library Essentials
Set Basics
Ruby's Set class stores unique values and makes membership checks direct.
Set Basics
set_basics.rb
require "set"
candidate =
topics = Set.new(["ruby", "docs"])
added = topics.add?(candidate)
contains_candidate = topics.include?(candidate)
sorted_topics = topics.to_a.sort
topic_list = sorted_topics.join("/")
puts "candidate=#{candidate}"
puts "added=#{!added.nil?}"
puts "contains=#{contains_candidate}"
puts "topics=#{topic_list}"
require "set"
candidate =
topics = Set.new(["ruby", "docs"])
added = topics.add?(candidate)
contains_candidate = topics.include?(candidate)
sorted_topics = topics.to_a.sort
topic_list = sorted_topics.join("/")
puts "candidate=#{candidate}"
puts "added=#{!added.nil?}"
puts "contains=#{contains_candidate}"
puts "topics=#{topic_list}"
require "set"
candidate =
topics = Set.new(["ruby", "docs"])
added = topics.add?(candidate)
contains_candidate = topics.include?(candidate)
sorted_topics = topics.to_a.sort
topic_list = sorted_topics.join("/")
puts "candidate=#{candidate}"
puts "added=#{!added.nil?}"
puts "contains=#{contains_candidate}"
puts "topics=#{topic_list}"
set
A `Set` keeps one copy of each value, so adding a duplicate does not increase the size.