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