どうも、Rubyをやっているものです。突然ですがHashっていまいちよくわからなくありませんか?そこで今回はRubyのHashについて簡単にまとめておきたいと思います。
Rubyのハッシュクラスの使い方と特徴
ハッシュって一体なんぞや
ハッシュとは「キーと値でデータの集まりを表現するオブジェクト」です!どーん!
とにかくハッシュにはキーと値があって、それらはセットになっているということですね。例えばキーがmelonで値がメロンみたいな感じですかね。
キーを使うことで、値にアクセスすることができるということです。以下の画像なら100円がキーとなっていて、値がバナナみたいな感じですね。
こうやってセットにして扱いたいときにHashが活躍します。
ハッシュの作り方
ハッシュは主に2つの作り方があります。細かいのは他にもありますが、とりあえず2つ覚えておけば大丈夫です。
- { }を使う方法
- Hash.newを使う方法
{ }を使う方法は以下のようにやってあげます。
コード
h1 = { "a" => "b" } # h2 = {a: b}でもOK
Hash.newを使う場合は以下のようにします。
コード
h1 = Hash.new
puts h1 #=> {}
Hash.newで値を取り出す、設定する
Hash.newを使用する場合には、以下のようにキーと値を設定します。
コード
h1 = Hash.new
h1["R"] = "Ruby"
puts h1["R"] #=> "Ruby"
同じようなことをstoreメソッドとfetchメソッドを使ってもできます。
コード
h1 = Hash.new
h1.store("R") = "Ruby"
puts h1.fetch("R") #=> "Ruby"
ハッシュ作成時にデフォルト値を設定する
Hash.newに引数を与えると、その値がデフォルト値として使われるので、覚えておくと便利です。
コード
h = Hash.new(1)
h["a"] = 10
puts h["a"] #=> 10
puts h["b"] #=> 1
puts h["c"] #=> 1
ハッシュにキーや値があるか調べる
以下のメソッドはよく出てくるので覚えておくと便利です。
Hashがあるオブジェクトをキーとして持っているか調べるメソッド
h.key?
h.has_key?
h.include?
h.member?
Hashがあるオブジェクトを値として持っているか調べるメソッド
h.value?
h.has_value?
キーと値を削除するメソッド
h.deleate
ハッシュを初期化するメソッド
h.clear