ATSU Tech Blog

Ruby on Rails, Pythonなどの記事を書いています。

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

曖昧な理解になってしまいがちな「ハッシュ」「シンボル」について、解説していきます。 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点をおさえていきましょう。


この記事の説明がわかりやすかった!ここ間違ってるよ!次こんな記事を書いて欲しい!などあればコメント、DMよろしくお願いします。LGTMもぜひ。

Twitterもやってますので、フォローしていただけたらうれしいです。 卓球、心理学、哲学、Webサービス、好きな音楽、カメラ、登山、ランニング、読んだ本などなんでもつぶやいてます。

https://twitter.com/atsushi101011