読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

Set

JavaのコレクションフレームワークでおなじみのSetですが、Rubyでは添付ライブラリとして提供されています。

require 'set'

# Setを作る。
# 引数でEnumerableを指定でき、その要素がSetに追加される。
set = Set.new(["a","b","c"])
#set = Set["a","b","c"] # これでも同じ。

# 要素の列挙
puts "\n---each"
set.each {|item| puts item }

# 要素の追加
puts "\n---add"
set << "x"
puts set.collect.join(",") # Enumerableもincludeされている

# 重複する要素は追加されない
puts "--"
set << "x"
puts set.collect.join(",")

# 要素を含むかどうか評価する。
puts "\n---include?"
puts set.include?("a") 

実行結果です。

---each
a
b
c

---add
a,x,b,c
--
a,x,b,c

---include?
true

なお、「2つのオブジェクトの等価性は Object#eql? と Object#hashによります」とのこと。Hashと同じです。