0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【挫折する前に】Ruby 配列オブジェクトとハッシュオブジェクトのイメージ

Posted at

この記事では配列オブジェクトとハッシュオブジェクトの違いってなに???
という方向けに解説していきたいと思います。
最初はなかなかわかりづらいこの2つのオブジェクトですが、頭の中でイメージができるようになると理解が早まると思います。

この記事が参考になりそうな人

  • 配列オブエクトとハッシュオブジェクトの違いがイマイチわからない人
  • 配列オブエクトとハッシュオブジェクトのイメージが掴めない人

配列オブジェクトのイメージ

まずハッシュオブジェクトから解説していきます。
配列オブエクトとは複数のオブジェクトに対して番号をふる形で格納するオブジェクトです。
CDアルバムを例えに説明してみます。
CDアルバムはタイトルがあって、その中に曲が入っていますよね?
下記のようなイメージです。
image.png
RIOT ON THE GRILLというタイトルのCDのなかに1曲目RedHot 2曲目モンスター 3曲目Snake Fightingという風に曲が並んでいます。※ここではアーティスト名はおいておいてください。

これを配列オブジェクトで書くと

sample.rb
riot_on_the_grill = ["Red Hot",  "モンスター", "Snake Fighting"]

となります。

ただここで一つ注意点があります。
それは配列オブジェクトのインデックスは0からスタートするということです。
要するに左から順番にRed Hotには0 モンスターには1という風に番号がふられます。
これはコンピューターの数の数え方に準じていますのでそう覚えてしまいましょう。

配列オブジェクトから値を取り出してみる

配列オブジェクトから値を取り出すには配列名  = [インデックス]という構文を使います。
例えばRed Hotを取り出すには以下のようになります。

sample.rb
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というハッシュ名で書くと以下のようになります。

sample.rb
song = {:title => "RIOT ON THE GRILL", :artist => "ELLEGARDEN"}

:titleというキーにRIOT ON THE GRILLが入り、artistキーにELLEGARDENが入っていますね。
これでハッシュにキーを持たせてオブジェクトが格納できました。

ハッシュの省略記法

ちなみに省略形での記法もあり、こちらを使うのが一般的です。

sample.rb
song = {title: "RIOT ON THE GRILL", artist: "ELLEGARDEN"}

ハッシュオブジェクトから値を取り出してみる

ハッシュから値を取り出すにはハッシュ名[キー]で取り出せます。

sample.rb
song = { title: "RIOT ON THE GRILL", artist: "ELLEGARDEN" }

puts song[:title]
=> RIOT ON THE GRILL #出力される
puts song[:artist]
=> ELLEGARDEN #出力される

それぞれの値が取り出せています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?