#はじめに#
こんにちは
3月から学習を始めてアウトプットを兼ねて投稿させていただきます。
#問題#
ruby.rb
puts menu.keys
puts menu.values
上記のメソッドを記述した時、
ruby.rb
餃子
炒飯
ラーメン
240
450
650
とターミナルに表示なれるような変数studentを作成するためのコードを考えて下さい。
#ヒント#
・ハッシュの生成
・keyとvalueの存在
##解答##
ruby.rb
menu = {餃子:240, 炒飯:450, ラーメン:650,}
puts menu.keys
puts menu.values
餃子
炒飯
ラーメン
240
450
650
#解説#
ハッシュとは
ハッシュとは「データ」とそれに対応する「名前」のセットを要素として持つ値です。
ハッシュとは、キーと値の組み合わせをセットにして複数のデータを管理することが出来ます。
変数 = {}
#hashの宣言
#{}波括弧を使います
シンボルとは
シンボルは、見た目は文字列のようですが、実際の中身は数値になっている値です。
複数のデータを持つことのできる値という点では、配列と同じです。
しかし、ハッシュは「キー」で管理する事ができます。
試しに配列の場合を記述します。
ruby.rb
menu = ["餃子",240,"炒飯",450,"ラーメン",650]
puts menu
餃子
240
炒飯
450
ラーメン
650
挙動は似ているようで読みにくい場合があります。
ハッシュとの大きな違いは、値にそれぞれキーを設定できるという事です。
##hashの利用について##
railsでUserモデルでユーザーのデータを取得したと考える事にします。
User = ["name","tom","age",25,"address","tokyo"]
puts User[1] #=> tom
puts User[3] #=> 25
puts User[5] #=> tokyo
配列だと呼び出す時に[添字]で呼び出すため何を呼び出しているかが見にくいです。
User = {name:"tom", age:25, address:"tokyo"}
puts User[:name] #=> tom
puts User[:age] #=> 25
puts User[:address] #=> tokyo
この記述だと何の値を呼び出しているかが一目でわかります。