紙一枚の積み重ね : ruby / 配列とハッシュ

RailsでDBからデータを取得する際に「これ取ってくるときに内部で何が行われているんだろう」と思っていたのですが、Progateの「配列とハッシュ」に解説が合ったのでメモ

#1. 配列
each文の書き方

配列.each do|変数名|
ex)
names=["AAAAA","BBBBBB","CCCCCC"]
names.each do|name|
    puts "My name is #{name} . "
end

=>My name is AAAAA . 
....
#変数nameが使える範囲はeach行からend行まで。(これを「変数nameが使えるscope(スコープ)」という

#2. 配列とハッシュ
配列 : [”AAAAAA”(値1) , "BBBBBBB"(値2) , "CCCCCCC"(値3)]

ハッシュ : {キー1 => 値1 , キー2 => 値2 }

######################################################################
ex1

human1 = {"name" => "Okina" , "age" => 25 } 

puts human1
=> {"name" => "Okina" , "age" => 25 } #(ハッシュがそのまま表示される)

puts human1["name"]
=> Okina

human1["age"] = 26   #キーに格納されている値の変更
puts human1
=>{"name" => "Okina" , "age" => 26 }

human1["gender"]= "male"   #ハッシュにキーと値を追加
=>{"name" => "Okina" , "age" => 26  , "gender" = "male"}

######################################################################
ex2

human2 = {:name => "Ouna" , :age => 25 } 
#(""ではなく:(コロン)でも同様に記載可能。この「:name」のような書き方を「シンボル」という)

puts human2
=> {:name => "Ouna" , :age => 25 }

puts human2[:name] #(書き方に注意)
=>Ouna


######################################################################
ex3

human3 ={name: "Omina" , age: 25}

puts human3
=> {:name=> "Omina" , :age=>25}

puts human3[:name] #(変数宣言時に省略した場合でも:(シンボル)は必要)
=> Omina


#注意
#human3 ={name : "Omina" , age: 25} のように、キーの後ろにスペースが入るとエラーとなるので注意

######################################################################
ex4
#配列の中にハッシュを入れるやり方

exams =[
 {subject: "Math", score: 80} , 
 {subject: "Science", score: 55}
 ]

puts exams[1]
=>{subject: "Science", score: 55}


exam = exams[1]
puts exam[:subject]
=> Science

puts exams[1][:subject]
=> Science


exams.each do|exam|
 puts "#{exam[:subject]}の結果は#{exam[:score]}点です"
end
=>
Mathの結果は80点です
Scienceの結果は55点です



#注意 ハッシュ間で 「 , 」 を忘れないこと

#end




この記事が気に入ったらサポートをしてみませんか?