チェリー本 4章 その1

配列

配列や繰り返し処理を理解する。

配列は改行して値を代入することができる。
この式は数値1,2,3を変数aに代入するコード

a = [
  1,
  2,
  3,
]
p a

=>
[1, 2, 3]

最後の要素が,ついても文法上エラーにはならない。
配列の中に配列も可能

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

p a[1][0] #4を呼び出せる。

要素の追加と削除

追加

配列には添字を添えて新しい値を代入することができる。

a = [10, 20, 30, 40]
p a

=> 
[10, 20, 30, 40]

#一番最初の10を11に書き換え
a[0] = 11
p a
=>
[11, 20, 30, 40]


#今現在配列の要素にある添字は0~3までしか存在しない。
#存在しない値を取り出すとnilになる。

#添字にa[6] = 60とするとどうなる??
[11, 20, 30, 40, nil, nil, 60]
添字は4~5nilで埋められる。

削除

配列の中の要素を削除したい時

a = [10, 20, 30, 40]

#配列の中の何を消したかわかる
p a.delete_at(1)
=> 
20

#今現在の配列の中がわかる。
p a
=>
[10, 30, 40]

消したい添字番号が存在しないとnilを返す。

配列を使った二重代入

2章で出てきた多重代入
ここではどんな時使えるか書いていく。

a, b = [1, 2]
p a, b

今回記載するのは...
rubyで割り算の商と余りを配列にして返してくれる。
メソッドdivmodが存在する。

#変数quo_remにdivmodメソッドの戻り値を代入
quo_rem = 14.divmod(4)

#戻り値そのまま受け取る
p "商 = #{quo_rem[0]}, 余り = #{quo_rem[1]}"


変数を別々に受け取ることができる。
quotient, remainder = 14.divmod(4)
p "商 = #{quotient} 余り = #{remainder}"