曖昧な理解になってしまいがちな**「ハッシュ」と「シンボル」**について、解説していきます。
Rubyを勉強し始めた時は全然わからなかった。。
この記事を通して
・ハッシュとキーの関係がわかる
・シンボルの使い方がわかる
ようになれば幸いです。
ハッシュは、「関連付いた名前をつけて、データを格納したいとき」に使う
数学のテストがあって、データが点数順に並んでいるとします。
score = [56,43,55,78,79,66,73,90,45,65,43,25]
ここで、taro君の点数を知ろうとしたとき「score」というデータだけではわかりませんよね。「name」という、データに関連付いた名前が必要になってきます。
ここで、ハッシュの登場です。
ハッシュとは、「関連付いた名前をつけて、データを格納したいとき」に使うことができます。
{ :name => score } #今回の例であれば { :taro => 56 }
このような形でハッシュを作ることができます。これでtaro君の点数を知ることができるようになりました。
データに関連付いた名前のことを「キー」と呼ぶ
「:taro」の部分をキーと呼びます。キー(データに関連付いた名前)とデータのセットであるハッシュを格納するわけですね。
キーは、文字列、時間、数字など、任意のオブジェクトを使うことできますが、「シンボル」と呼ばれる、コロンではじまる識別子をよく使います。(例 => :taro)
またキーとデータの間の区切りにコロンを使うことができます。その場合、シンボル名の頭のコロンを書いてはいけません。
# ①文字列
"taro" => 56
# ②シンボル
:taro => 56
# ③一番良く使う表記
taro: 56
①、②、③は同じ意味になります
シンボルは「何かしらの名前を表す存在だよ」ということを示しています。
「:taro」になったり、「taro:」になったりして、コロンに惑わされると思うのですが、①、②、③が同じであることがわかれば安心かと思います。
まとめ
以上、ハッシュとシンボル、キーの関係について、解説していきました。
・「ハッシュ」・・・「関連付いた名前をつけて、データを格納したいとき」に使う
・「キー」・・・データに関連付いた名前
・「シンボル」・・・コロンではじまる識別子を使ったキー
この3点をおさえていきましょう。
この記事の説明がわかりやすかった!ここ間違ってるよ!次こんな記事を書いて欲しい!などあればコメント、DMよろしくお願いします。LGTMもぜひ。
Twitterもやってますので、フォローしていただけたらうれしいです。
卓球、心理学、哲学、Webサービス、好きな音楽、カメラ、登山、ランニング、読んだ本などなんでもつぶやいてます。
[https://twitter.com/atsushi101011]