30歳 独学で始めるプログラミング ~WEBデザイン・アプリ開発~

ITスキルに興味がでたので、codeを書いてみたら面白くてハマってしまいました!日々何をやったのかを中心に、記事を書いていきたいと思います。

38日目:Ruby Ⅱ:配列とハッシュを使おう(配列、インデックス、ハッシュ、キー)

<学習日>

38日目

<学習内容>

① Ruby Ⅱ(0-60%):配列とハッシュを使おう (配列、インデックス、ハッシュ、キー)

<参考>

Progateレベル:166

 

<学習内容詳細>

f:id:yakuzen_kokoro:20200811220656p:plain

本日はRubyの続きを進めていきました^^

 

今日の内容も、他の言語で勉強した概念だったので、比較的サクサクと進めることがあ出来ました!

 

 

① Ruby Ⅱ(0-60%):配列とハッシュを使おう (配列、インデックス、ハッシュ、キー)

f:id:yakuzen_kokoro:20200811220714p:plain

はい、ということで基本的には配列やハッシュを扱う導入編という感じです!

 

ハッシュという言葉はプログラミングの勉強をし始めてからは初めてですが、PHPでいうところの連想配列と同じです^^

 

ではさっそく具体的なcodeをみながら、進めていきましょう。

 

・配列について
複数のデータを持つデータのことを「配列」という
具体的には以下のとおり。

 

names = ["Ken", "John", "Taro"]

 

このように、変数に配列を定義することが可能である。

 

また、配列には左から順番に数字を振ってあり、これをインデックスという。
0から始まり、順番に増えていく。

 

上記の例でインデックスを指定せず出力した場合と、指定して出力した場合を具体的に示すと以下のとおり。

 

puts names ⇒ Ken John Taro
puts names[1] ⇒ John


・繰り返し処理

eachを用いる方法についての具体的なcodeは以下のとおり。なおnames配列は、上記のものとする。

 

names.each do |name|
puts "彼の名前は#{name}です"
end

 

これで出力は以下のとおりとなる。

 

彼の名前はKenです。
彼の名前はJohnです。
彼の名前はTaroです。


・ハッシュとは

配列がただの値の羅列であったのに対して、ハッシュとは「キー」と「値」が紐づけられた配列である。

具体的なcodeとしては、以下のとおりである。

 

man = {"name" => "Ken", "age" => 20, "height" => 178}


ハッシュをそのまま呼び出すと、ハッシュのまま出てくる。これは配列をそのまま呼び出すと、配列の中身が整理されて出てくるのと対照的。

 

puts man ⇒ {"name" => "Ken", "age" => 20, "height" => 178}


これだと使いようがないので、基本的にハッシュを用いる場合には、ハッシュとキーを組み合わせてアウトプットさせる。

 

puts man["age"] ⇒ 20

 

のようになる。

 

また、キーの中の値の書き換えや、新しいキーと値の組み合わせの追加は、後から以下のようにcodeを書けば実行できる。

 

man["name"] = "John" :これでmanハッシュのnameの値はJohnに修正される。
man["weight"] = "70" :これでmanハッシュに、weightキーが追加され、値は70となる。

 

このように、修正も追加もcodeは一緒であり、すでにあるキーを指定した場合は修正になり、ないキーを指定した場合は追加になる。

 

なおハッシュには3種類書き方があるので全て列挙すると以下のとおりであり、一番下の省略形が一番よくつかわれる。

 

man = {"name" => "Ken", "age" => 20, "height" => 178}
man = {:name => "Ken", :age => 20, :height => 178}
man = {name: "Ken", age: 20, height: 178}

 

下2つの書き方をした場合は、呼び出すときも少し方法が異なり、以下のように""ではなく:で呼び出すこと。

 

puts man[:name]

 

 

はいということで、今回はここで終わりです。

次回からはnilというnodataの処理の仕方を勉強していきます!

 

感想というのかなんというのか、ハッシュの省略形がPHPではデフォで出てきたので、どちらかというと省略前の書き方が違和感がありましたね^^;;

 

短いは正義ですので、きっと省略形に慣れておけば大丈夫と信じています!

 

 

ではでは、1日でも長く続けられるように頑張っていきます^^

同志の方、一緒に頑張っていきましょう!