Rubyのhash(ハッシュ)で連想配列を使う方法【初心者向け】

初心者向けにRubyのhash(ハッシュ)で連想配列を使う方法について実際にソースコードを書きながら解説しています。配列との違いについても説明しているので、聞いたことはあるけどよく分からないという方はぜひご覧ください。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

今回はRubyのhash(ハッシュ)で連想配列を使う方法を説明していきます。

ハッシュは配列と同じように複数のオブジェクトを管理するために使い、管理するものがより複雑になってくると便利でしょう。

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

大石ゆかり

田島メンター!!連想配列というのは何ですか~?

田島悠介

連想配列は、添字に文字列を使うことができる配列のことだよ。

大石ゆかり

[0][1][2]~みたいな感じじゃなくて、文字列が入っているということですね。

田島悠介

まずは連想配列の基本的な書き方を解説しよう。

 

目次

 

ハッシュとは

ハッシュとはHashクラスのことです。と言っても分からないと思いますので、詳しく言うと、2つの要素を結び付けているものといった方がわかりやすいでしょうか。

連想配列という、結びつきのある配列を言います。配列と同じように複数のオブジェクトへの参照をまとめて管理することができます。

配列と違うのは、ハッシュではそれぞれにキーを指定することで値を取得することができます。配列のように要素の順番で参照することはできないところでしょう。

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

ハッシュの書き方

以下のように記述します。

player = {"kato" => 30, "Sato" => 25}

これで「kato」は30の値を持ち、「Sato」は25の値を持っていることになります。
呼び出すときは以下のように書きます。

player["kato"]

これで「kato」の持っている値(いわば30)を呼び出すことができます。

 

田島悠介

例えばこの内容を出力したい場合、puts player[“kato”]と書けばいいことになるね。

大石ゆかり

ハッシュオブジェクト[“キー”]で要素を指定するんですね。

田島悠介

次は実際に連想配列を作成して、さらにその値を変更してみよう。

 

実際に書いてみよう

実際に書いてみたいと思います。

以下のコードを実行してみましょう。

sample.rb

#! /usr/bin/env ruby
#-*- coding: utf-8 -*-

player = {"kato" => 30, "Sato" => 25}
puts player["kato"]

player["kato"] = 40
puts player["kato"]
player["yamada"] = 100
puts player["yamada"]

出力結果

30

40

100

最初の部分は、2個目の見出しで行った通りに、ハッシュ値から、関連の数値を取り出しています。

2つ目は、ハッシュの値を変更していることが確認できますね。このようにして、ハッシュの値を変更できます。

3つ目は、新しいハッシュ値を追加し、参照していますね。これによって、新たなハッシュの値を追加することができます。

ハッシュは存在していれば変更、そのハッシュが無ければ新たに追加されます。

 

また、ハッシュクラスには「store」メソッドが用意されているので、それを用いて追加、変更することもできます。

sample.rb

#! /usr/bin/env ruby
#-*- coding: utf-8 -*-

player = {"kato" => 30, "Sato" => 25}
puts player["kato"]

player.store("kato", 40)
puts player["kato"]

player.store("yamada", 100)
puts player["yamada"]

このようにすることで、登録変更時の処理だと判断できますね。

様々なプログラミングパターンのあるRubyならではの性質が大きく表れていると思います。

 

以上、Rubyのhashの使い方を解説しました。

配列ではインデックスを使って要素を区別しますが、ハッシュはキーを用いるので区別しておきましょう。

 

田島悠介

連想配列の値を変更したり、新しい値を追加したりしてみたよ。

大石ゆかり

それぞれ変更、追加した値がちゃんと出力されましたね。

田島悠介

連想配列で分かりやすいキーを設定することで、内容が判別しやすくなるよ。ぜひ活用しよう。

大石ゆかり

そうですね、分かりました。ありがとうございます!

 

[お知らせ]TechAcademyでは初心者でも最短4週間でオリジナルサービスが作れるRuby on Railsオンラインブートキャンプを開催しています。