【Ruby】ハッシュの使い方を徹底解説!

Ruby

ハッシュとは

ハッシュとは一つ変数を宣言することでキーとバリューがセットになった複数のデータを持つことができるオブジェクトのことです。

ハッシュの基本概念

変数には1つのオブジェクトに名札をつけて管理するものでした。
ハッシュは1つのオブジェクトをキーとバリューのセットになってそれを複数管理することができます。

1つの変数で複数の情報を管理できるので、とっても便利です。
今回はそんなハッシュの使い方を学んでいきましょう。

ハッシュの作成法

ハッシュオブジェクトを作成するには{}を使います。
その際、下記の3つの作成方法があります。

  • 変数名 = {"キー" => "バリュー"}
  • 変数名 = {:キー => "バリュー"}
  • 変数名 = {キー: "バリュー"}

「=>」はハッシュロケットと呼ばれる記法で現在ではあまり使われません。
また3番目の記法シンボル型と呼ばれRubyのバージョンが1.9.3以降でしか使えないので注意が必要ですが、現在は3番目の描き方で書くのが一般的となっています。

(例)

ruby
1
human = {name: "プログラマン", age: 20, height: 170}

上の例だとhumanという変数にキーであるnameとageとheightに3つのバリュー情報が入っています。

ハッシュからバリューを取り出してみよう

それでは上で定義したハッシュからバリューを取り出してみましょう。
取り出す際には下記のように記述します。

ruby
1
2
3
4
5
キー名[:バリュー名]
# 例
human = {name: "プログラマン", age: 20, height: 170}
human[:name]
=> "プログラマン"

ハッシュ
こう書くことによりhumanというハッシュに入っているキーがnameのバリューが取り出せます。
上の例だと"プログラマン"という文字列が返ってきます。

ハッシュの中身を追加してみよう

また新たなハッシュの要素を追加するには下記のように記述します。

ruby
1
2
human[:weight] = 60 
human = {name: "プログラマン", age: 20, height: 170, weight: 60}

ハッシュの追加
ハッシュはキーとバリューがセットになった複数の情報を持つことができるオブジェクトだと覚えておきましょう!

ハッシュの中身を削除してみよう

ハッシュの中の1つのキーとバリューのセットを削除するにはdeleteメソッドを使います。
実際に上のハッシュにdeleteメソッドを使い、1つのキーとバリューのセットを削除してみましょう。

deleteメソッド

deleteメソッドは、ハッシュから引数で渡したkeyと同じキーを探して、キーとバリューを削除します。
削除した後はレシーバーを上書きします。
返り値はキーの値になり。キーが見つからないときはnilが返り値となります。

ruby
1
2
3
4
5
human = {name: "プログラマン", age: 20, height: 170, weight: 60} 
human.delete(:weight) 
=> 60 
human 
=> {:name=>"プログラマン", :age=>20, :height=>170}

clearメソッド

またclearメソッドを使用するとキーとバリューをすべて削除し、ハッシュを空にします。
その後、レシーバー自身を上書きします。

ruby
1
2
3
human = {name: "プログラマン", age: 20, height: 170, weight: 60}
human.clear
=> {}
まとめ

ハッシュを使うと1つの変数でキーとバリューがセットになった情報を複数管理できます。 プログラミングでは必ず出てくる概念なので、しっかりと覚えておきましょう。