LoginSignup
3
2

More than 5 years have passed since last update.

【Ruby, Rails初心者向け】ハッシュ、配列を5分で理解しよう!

Last updated at Posted at 2018-09-06

配列、ハッシュ、シンボルについて、
たまに書き方忘れたり、よくわからなくなることはありませんか?
簡単に復習しましょう!
 

あなたは、とあるRuby初学者で、小学校の先生です。
 

生徒たちのテストの点数を一覧にしてまとめやすくしたいなぁって
思ったとします。さて、どうしますか? 

 

score = [80, 76, 50, 40, 20]



とりあえず、配列にして、点数をまとめてみました。

しかし、これでは誰がどの点数をとったのか、さっぱりわかりませんよね。

そこで出てきたのが、ハッシュです!

scores = {"tanaka" => 80, "satou" => 76, "itou" => 50, "katou" => 40, "suzuki" => 20}

 

これなら、誰が何点かわかりますね! 
この {} をハッシュと言います。
また、"tanaka"を【キー】、80を【値】と言います。
 

さらに上のハッシュは以下のように変形できます。

scores = {:tanaka => 80, :satou=> 76, :itou => 50, :katou => 40, :suzuki => 20}



"tanaka" が :tanakaに変わりました。
この書き方を、シンボルって言います。

さらにさらに、この書き方は、もっと簡単になります。

scores = {tanaka: 80, satou: 76, itou: 50, katou: 40, suzuki: 20}



めちゃくちゃ簡単になりましたね!
ただし、取り出すときには要注意!
 

puts scores[tanaka]   #← × エラー!
puts scores[:tanaka]   #← ◯



tanaka はシンボルだから、下のように書かなければいけません! 

これで、だいぶまとめやすくなり、安心ですね。
では、1組の生徒と2組の生徒の点数を、分けて集計したい!っていう時は
どうしたら良いでしょうか?

scores = [
          {tanaka: 80, satou: 76, itou: 50, katou: 40, suzuki: 20},
          {iida: 67, ogawa: 89, kojima: 60, nagashima: 70, matsuda: 40}
         ]



ハッシュと配列の合わせ技を使えばOKですね。
こうすれば、1組(tanaka ~ suzuki)、2組(iida ~ matsuda)で、まとめられますね。値を取り出してみましょう。シンボルに注意ですよ! 
 

puts scores[0][tanaka]    ← エラー!
puts scores[0][:tanaka]     tanakaは、シンボル!



このように、puts 配列[インデックス番号][キー]
という書き方で、取り出すことができます。
 

では、楽しいプログラミングライフを〜

3
2
2

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
3
2