yujiroのプログラミング

勉強内容をアウトプットし、サボらないようにする為のブログ

<DAY64>Rubyのハッシュ、配列の取り出し方について

\ Follow me!! /

f:id:yujiro0320:20190415152250p:plain

 #学習時間と累計時間

●学習日数  64日 

●学習時間(本日)   5.0時間

●累計学習時間  170.0時間

●一日あたりの平均学習時間  2.65時間 

<問題作った背景>

progateを通じてrailsで簡単なツイッターアプリやRails,ActiveRecord,Ruby,SQL,Git,HTML,CSSの基礎は学んだ。 模写すれば、アプリは作れるが、ロジック組みが全く出来る気がしない事に気づく。 Rubyの基礎文法は間違いなく大事。ロジックを組むのは脳みそ使うし、脳みそをエンジニア脳に一日でも早く変換していく必要がある。

コードを打つ→実行→結果の確認→エラーの理由を知る。 このサイクルが理解に良いと体感した。

irbでコードを打ち込む>

コードをカタカタ打ちまくるにはターミナルでirbと打ち込み、rubyのコードが打ち込めるモードにするが手取り早い。 これを繰り返してコード打ち実行を繰り返すとテキストで理解する時以上に楽しいし、理解も早く進むと感じる。

f:id:yujiro0320:20190423180901p:plain

<こんな配列も出来る>

配列といえば

ary = ["tanaka", "satou", "suzuki"]

ary[0]

 => "tanaka"

配列にハッシュが格納されているケースも多々あります。

ary = ["tanaka", ["masa", "suzuki"], {name: "ota"}, {:name => "kato"}, {"name"=> "take"}]

これも配列である。最初は取り出し方に迷った。

ary[1][0]

=> "masa"

ary[2][:name]

=> "ota"

ary[4]["name"]

=> "take"

となる。

<ハッシュについて>

この3通りあるよね。結論 name2とname3は同じ。name3の書き方が多い

name1 = {"name" => "taro"}
name2 = {:name => "taro"}
name3 = {name: "taro"}

ここでの違いは name1はキーを文字列としている name2,3はキーをシンボルとしている事。 シンボルとは、文字列の皮を被った数値であり、実行速度を見ると、シンボルでキーを指定した方が早い。 取り出す時はキーがシンボルなのか文字列なのか留意する。