📘

Rubyのハッシュとシンボル、キーの関係について、わかりやすく解説する

2022/02/10に公開

曖昧な理解になってしまいがちな 「ハッシュ」「シンボル」 について、解説していきます。

この記事を通して

  • ハッシュとキーの関係がわかる
  • シンボルの使い方がわかる

ようになれば幸いです。

ハッシュは「関連付いた名前をつけて、データを格納したいとき」に使う

数学のテストがあって、データが点数順に並んでいるとします。

 score = [56,43,55,78,79,66,73,90,45,65,43,25]

ここで、taro君の点数を知ろうとしたとき「score」というデータだけではわかりませんよね。「name」という、データに関連付いた名前が必要になってきます。

ここで、ハッシュの登場です。
ハッシュとは、「関連付いた名前をつけて、データを格納したいとき」に使うことができます。

{ :name => score }    #今回の例であれば { :taro => 56 }

このような形でハッシュを作ることができます。これでtaro君の点数を知ることができるようになりました。

データに関連付いた名前のことを「キー」と呼ぶ

「:taro」の部分をキーと呼びます。キー(データに関連付いた名前)とデータのセットであるハッシュを格納するわけですね。

キーは、文字列、時間、数字など、任意のオブジェクトを使うことできますが、「シンボル」と呼ばれる、コロンではじまる識別子をよく使います。(例 => :太郎)

またキーとデータの間の区切りにコロンを使えば、シンボル名の頭のコロンを省略することができます。

# ①文字列
"taro" => 56
# ②シンボル
:taro => 56
# ③一番良く使う表記
taro : 56

①、②、③は同じ意味になります

シンボルは「何かしらの名前を表す存在だよ」ということを示しています。

「:taro」になったり、「taro:」になったりして、コロンに惑わされると思うのですが、①、②、③が同じであることがわかれば安心かと思います。

まとめ

以上、ハッシュとシンボル、キーの関係について、解説していきました。

  • 「ハッシュ」・・・「関連付いた名前をつけて、データを格納したいとき」に使う
  • 「キー」・・・データに関連付いた名前
  • 「シンボル」・・・コロンではじまる識別子を使ったキー

この3点をおさえていきましょう。

Discussion