📘
Rubyのハッシュとシンボル、キーの関係について、わかりやすく解説する
曖昧な理解になってしまいがちな 「ハッシュ」 と 「シンボル」 について、解説していきます。
この記事を通して
- ハッシュとキーの関係がわかる
- シンボルの使い方がわかる
ようになれば幸いです。
ハッシュは「関連付いた名前をつけて、データを格納したいとき」に使う
数学のテストがあって、データが点数順に並んでいるとします。
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