Ruby の基礎(配列オブジェクト、ハッシュオブジェクト)

前回 : Ruby の基礎(数値オブジェクト、文字列オブジェクト) - tatsuyaoiw.hatenablog.com に続いて、今度は配列オブジェクトに関して。

配列オブジェクト

配列オブジェクトの宣言、値の取り出し方法は、以下の要領で。

list = ["hello", "ruby", "world"]
p list # ["hello", "ruby", "world"]
p list[1] # "ruby"
p list[1..2] # ["ruby", "world"]
p list[0...2] # ["hello", "ruby"] -> "..." は最後の要素を含まない -> [0..1] と同じ意味
p list[-1] # "world"

配列への要素の追加や書き換え方法。

list[0] = "hello_new"
list[0..1] = ["hello_new_new", "ruby_new"]
p list # ["hello_new_new", "ruby_new", "world"]
list[1, 2] = ["a", "b"] # 配列の 1 番目から 2 つの要素を置き換える
p list # ["hello_new_new", "a", "b"]
list[1, 0] = ["c", "d"] # 配列の 1 番目に要素を挿入
p list # ["hello_new_new", "c", "d", "a", "b"]

配列オブジェクトの演算。集合の演算的な使い方ができます。

a = [1, 2, 3, 4]
b = [3, 4, 5, 6]

p a & b # [3, 4] -> 共通部分
p a | b # [1, 2, 3, 4, 5, 6] -> すべての要素
p a - b # [1, 2]
p a + b # [1, 2, 3, 4, 3, 4, 5, 6]

配列オブジェクトのメソッド。

a = [1, 5, 3, 4, 5, 4, 8]
p a.uniq # [1, 5, 3, 4, 8]
p a.sort # [1, 3, 4, 4, 5, 5, 8]
p a.sort! # [1, 3, 4, 4, 5, 5, 8] -> 破壊的メソッドも使える

a.unshift # 先頭に追加
a.push # 末尾に追加
a.shift # 先頭を削除
a.pop # 末尾を削除

ハッシュオブジェクト

続いて、ハッシュオブジェクト(連想配列)の書き方。 {"key1"=>value1, "key2=>value2, ..., "keyN"=>valueN} って感じです。

sales = {"a"=>100, "b"=>150, "c"=>300}
p sales # {"a"=>100, "b"=>150, "c"=>300}
p sales["a"] # 100

ハッシュオブジェクトのメソッドの例。

p sales.size # 3 -> 要素数
p sales.length # 3 -> size と同じ
p sales.empty? # false -> 要素があるか
p sales.has_key?("a") # true -> キーの有無
p sales.has_value?(222) # false -> 値の有無