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サービス、好きな音楽、カメラ、登山、ランニング、読んだ本などなんでもつぶやいてます。