Ruby学習メモ 配列
<配列>
・配列とは複数のデータをまとめて格納できるオブジェクトのこと。配列内のデータ(要素)は順番に並んでいて、添え字(インデックス)を指定することでそのデータを取り出すことができる。配列は次のように[ ]と,を使って作成する。
# 空の配列を作る
[ ]
# 3つの要素が格納された配列を作る。
[要素1, 要素2, 要素3]
・配列はArrayクラスのオブジェクトになっている。
# 空の配列を作成し、そのクラス名を確認する
.class #=> Array
・次のように改行して書くこともできる。
a = [
1,
2,
3
]
#最後の要素に,がついても文法上エラーにならない。
a = [
1,
2,
3,
]
・配列は数値に限らず、どんなオブジェクトも格納でき、異なるデータ型を一つの配列に格納することもできる。また、配列の中に配列を含めることもできる。
# 配列の中に文字列を格納する例
a = [‘apple’, ‘orange’, ‘melon’]
# 異なるデータ型を格納
a = [1, ‘apple’, 2, ‘orange’, 3, ‘melon’]
# 配列の中に配列を含める
a = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]
・配列の各要素を取得する場合は、[ ]と添え字(数値)を使う。最初の要素の添え字は0である。存在しない要素を指定してもエラーにならず、nilが返る。
a = [1, 2, 3]
# 1つ目の要素を取得
a[0] #=> 1
# 2つ目の要素を取得
a[1] #=> 2
# 3つ目の要素を取得
a[2] #> 3
・sizeメソッド(エイリアスメソッドはlength)を使うと配列の長さ(要素の個数)を取得できる。
a = [1, 2, 3]
a.size #=> 3
a.length #=> 3
・添え字を指定して値を代入すると、指定した要素を変更することができる。
# 配列[添え字] = 新しい値
a = [1, 2, 3]
a[1] = 20
a #=> [1, 20, 3]
<要素の変更、追加、削除>
・元の大きさ(配列の要素の数)よりも大きい添え字を指定して値を代入すると、間の要素の値がnilで埋められる。
a = [1, 2, 3]
a[4] = 50
a #=> [1, 2, 3, nil, 50]
a[7] = 80
a #=> [1, 2, 3, nil, 50, nil, nil, 80]
・<<を使うと配列の最後に要素を追加することができる。
a =
a << 1
a << 2
a << 3
a #=> [1, 2, 3]
・配列内の特定の位置にある要素を削除したい場合はdelete_atメソッドを使う。
a = [1, 2, 3]
# 2番目の要素を削除する(削除した値が戻り値となる)
a.delete_at(1) #=> 2
a #=> [1, 3]
#存在しない添え字を指定するとnilが返る。
a.delete_at(100) #=> nil
a #=> [1, 3]
<配列を使った多重代入>
・配列を使って多重代入することができる。
# 配列を使って多重代入する
a, b = [1, 2]
a #=> 1
b #=> 2
# 右辺の数が少ない場合はnilが返る。
c, d = [10]
c #=> 10
d #=> nil
# 右辺の数が多い場合は、はみ出した値が切り捨てられる。
e, f = [100, 200, 300]
e #=> 100
f #=> 200