7月28日 学習記録
実施内容
-
progate
第1章:配列と繰り返し
第2章:ハッシュとシンボル
第3章:nilと様々な配列
第4章:課題にチャレンジしよう
本日学習した内容
-
1:配列
配列とは、複数の値、文字列などを一つにまとめたもの。
配列に入っている一つ一つの値、文字列の事を「要素」という。
配列を定義するには、要素全体を[]で囲み、要素を「,」で区切って定義する。
以下は、「カレーライス」、「ラーメン」、「カツ丼」という3つの要素を持つ配列を変数「foods」に代入している例。
-
2:繰り返し処理(each文)
each文を使用すると、配列の要素を順番に取り出して処理を実行できる。
「配列変数名.each do |変数名| 実行したい処理 end」と記述する。
以下は、配列変数foodsのすべての要素をコンソールに出力する例である。
-
3:ハッシュ
ハッシュとは、配列と同じように複数の値、文字列などを一つにまとめて管理できるものである。
配列は複数の要素を並べるのに対して、ハッシュではそれぞれの要素に「キー」と呼ばれる名前を付けて管理する。
配列と異なり、ハッシュでは要素全体を{}で囲み、「キー名 => 値」と記述する。
ハッシュ要素を用いる場合は、ハッシュ変数名[キー]と記述する。
以下の例では、キーmenuに対して値カレーライス、キーpriceに対して値600というハッシュを定義し、3行目でキーmenuに対応する値カレーライスをコンソールに出力している。
-
4:シンボル
ハッシュの記述は、3で上げた方法以外にもキーの部分を文字列ではなく、先頭にコロン「:」を付ける方法もある。
このように文字列を「"」や「'」で囲むのではなく、先頭に「:」を付けた書き方を「シンボル」と呼ぶ。
3のソースコードをシンボルを用いて書き直すと以下のようになる。
※定義時にシンボルを用いた書き方をした場合、使用する場合もシンボルの書き方にしないとエラーが出るため、注意。
-
5:キーがシンボルのハッシュの省略
ハッシュのキーにシンボルを用いる場合、「:キー名 =>」の部分を「キー名:」のように省略した書き方もできる。
省略した書き方の場合でも、使用する場合はシンボルを使用する。
4のソースコードを省略した書き方で書き直すと以下のようになる。
-
6:「nil」について
ハッシュをコンソールに出力する場合、存在しないキーを設定しても何も表示されない。
ハッシュからキーが存在しない値を取り出した場合の、「何もない」状態の事をRubyでは「nil」(ニル)という特別な値で表現される
以下の例では、ハッシュfoodsに対して存在しないキー「size」に対する値と、nilを出力しようとする例。(いずれも何も表示されない)
-
7:要素がハッシュである配列
配列の要素には、値、文字列だけでなくハッシュを用いることも可能。
配列変数名[インデックス番号]でハッシュを変数に代入し、変数名[キー]とすることで、ハッシュの要素の値を使用できる。
また、配列変数名[インデックス番号][キー]というように省略して書く事もできる。
以下の例では、インデックス番号1のハッシュを変数に代入し、キーmenuに対応する文字列ラーメンを出力している。
今日のエラー
18行目でeach文を閉じるendを書き忘れた為、エラーが出た。
疑問に思ったこと
Rubyでは、CやJavaでいう「while」や「swich~case」に該当する条件分岐はないか?(後のレッスンで習う?)