この記事では配列オブジェクトとハッシュオブジェクトの違いってなに???
という方向けに解説していきたいと思います。
最初はなかなかわかりづらいこの2つのオブジェクトですが、頭の中でイメージができるようになると理解が早まると思います。
この記事が参考になりそうな人
- 配列オブエクトとハッシュオブジェクトの違いがイマイチわからない人
- 配列オブエクトとハッシュオブジェクトのイメージが掴めない人
配列オブジェクトのイメージ
まずハッシュオブジェクトから解説していきます。
配列オブエクトとは複数のオブジェクトに対して番号をふる形で格納するオブジェクトです。
CDアルバムを例えに説明してみます。
CDアルバムはタイトルがあって、その中に曲が入っていますよね?
下記のようなイメージです。
RIOT ON THE GRILL
というタイトルのCDのなかに1曲目RedHot
2曲目モンスター
3曲目Snake Fighting
という風に曲が並んでいます。※ここではアーティスト名はおいておいてください。
これを配列オブジェクトで書くと
riot_on_the_grill = ["Red Hot", "モンスター", "Snake Fighting"]
となります。
ただここで一つ注意点があります。
それは配列オブジェクトのインデックスは0からスタートするということです。
要するに左から順番にRed Hotには0
モンスターには1
という風に番号がふられます。
これはコンピューターの数の数え方に準じていますのでそう覚えてしまいましょう。
配列オブジェクトから値を取り出してみる
配列オブジェクトから値を取り出すには配列名 = [インデックス]
という構文を使います。
例えばRed Hot
を取り出すには以下のようになります。
riot_on_the_grill = ["Red Hot", "モンスター", "Snake Fighting"]
puts riot_on_the_grill[0]
=> Red Hot # Red Hotが出力される
ハッシュオブジェクトのイメージ
続いてハッシュオブジェクトです。
ハッシュオブジェクトには配列オブジェクトのように1番目・2番目・・・という順番がありません。
その代わりオブジェクト
と、それを取り出すためのキー
がセットになります。
キー => "オブジェクト"
という形式で書きます。
先ほどのCDの例で説明します。
CDにはアルバム名
とアーティスト名
がありますよね。
アルバム名"RIOT ON THE GRILL"というオブジェクトにtitle
というキー
を指定、
アーティスト"ELLEGARDEN"というオブジェクトにartist
というキー
を指定します。
それをsongというハッシュ名で書くと以下のようになります。
song = {:title => "RIOT ON THE GRILL", :artist => "ELLEGARDEN"}
:title
というキーにRIOT ON THE GRILL
が入り、artist
キーにELLEGARDEN
が入っていますね。
これでハッシュにキーを持たせてオブジェクトが格納できました。
ハッシュの省略記法
ちなみに省略形での記法もあり、こちらを使うのが一般的です。
song = {title: "RIOT ON THE GRILL", artist: "ELLEGARDEN"}
ハッシュオブジェクトから値を取り出してみる
ハッシュから値を取り出すにはハッシュ名[キー]
で取り出せます。
song = { title: "RIOT ON THE GRILL", artist: "ELLEGARDEN" }
puts song[:title]
=> RIOT ON THE GRILL #出力される
puts song[:artist]
=> ELLEGARDEN #出力される
それぞれの値が取り出せています。