【第3回】Ruby初心者向け!ハッシュとは?
Rubyを勉強しているとチラホラ出てくる「ハッシュ」という単語。
他のプログラミング言語でも使われるものですが、ここではRubyにおけるハッシュをしっかり身につけましょう。
Rubyにおけるハッシュとは?
ハッシュとはオブジェクトをキーとして、別のオブジェクトへ関連付けるものです。
配列と同じく、ハッシュが保持するのはオブジェクトへの参照となります。
ハッシュを変数に入れることもできるので、1つの変数に複数のデータを持たせることもできます。
それでは実際に見ていきましょう。
ターミナルでRubyのハッシュを試してみよう
それではさっそくターミナルでハッシュを試してみましょう。
今回はmanという変数に名前や年齢などの情報を持たせていきます。
man = {:name => "Mike", :age => "18"}
p man =>{:name =>"Mike", :age =>"18"} #出力結果
変数manの中にそれぞれのキーと値が格納されました。
なお、キーとキーの間はカンマで区切ります。
nameやageのようなオブジェクトはキーと呼ばれます。
また、nameやageに対応するオブジェクト(Mike,20)などは値(value)と呼ばれます。
任意の値を取り出す
それでは次にハッシュから特定のキーに応じた値を取り出してみましょう。
その場合は変数の後ろに取り出したい値に対応するキーを指定します。
試しにMikeという名前だけを取り出してみましょう。
p man[:name] => ”Mike" #出力結果
取り出す場合は変数の後に[:キー名]という形になります。nameキーに対応した値(Mike)が取り出されました。
ハッシュに値を追加する
それでは次に既存のハッシュに値を追加してみましょう。
現在、manというハッシュにはnameやageに対応した値が保持されています。(オブジェクトへの参照へと対応付けられています)
さっそくハッシュに性別の値を追加してみましょう。
ハッシュに追加する場合は、任意の値を取り出す場合と似ています。
man[:sex] = "man"
p man => {:name=>"Mike", :age=>"18”, :sex=>”man”} #出力結果
今回、sex(性別)をキーにmanという値(value)を追加しました。
変数[:キー名] = “追加したい値”
この形ですね。
ちょっと寄り道
ここまでで、Rubyでハッシュを使う方法がぼんやり理解できたかと思います。
ハッシュとはオブジェクトをキーとして、別のオブジェクトへ関連付けるものです。
1つの変数で複数のデータを持つことができるオブジェクトと言い換えてもイメージしやすいと思います。
player = {soccer => "honda" ,baseball => "ichiro"}
この形で説明しましたが、実は以下の形でも可能です。
player = {"soccer" => "honda" , "baseball" => "ichiro"}
soccerやbaseballを”soccer”、”baseball”というようにキーを文字列としています。
どちらもハッシュとして使えるのですが、
player = {soccer => "honda" ,baseball => "ichiro"}
こちらの方を使うと良いでしょう。
その理由としては文字列をキーに使用するよりもシンボルを使用した方が処理速度が速いためです。
まとめ
今回、Rubyのハッシュについて紹介をしました。
配列とセットで覚えると頭に入りやすいと思います。
他のプログラミング言語でもハッシュはよく使われる概念なので、しっかり確認しておきましょう。
▼関連記事
【第1回】Ruby初心者向け!ターミナルで動くコードを書いてみる