Ruby のお勉強 - 配列(Array) -

公開日:2014-12-22

配列(Array)

ソース
array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
p array[0]
p array[-2]
p array[10]
p array[-20]
実行結果
0
8
nil
nil
インデックスにマイナス値を指定すると、反対側から要素にアクセスすることができる。代入も可能。
範囲外のインデックスを指定した場合は、配列が拡張される。初期値は nil。


ソース
array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
p array.count
p array.length
p array.size
実行結果
10
10
10
配列の要素数の取得。どれかで統一しておいた方がいいと思う。


ソース
array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
array2 = array[3, 5]
p array.count
p array2
p array2.count
実行結果
10
[3, 4, 5, 6, 7]
5
配列の一部分を抜粋して、新たな配列にすることができる。
元の配列は影響を受けない。
但し、配列内の要素が変更可能なオブジェクトだった場合、オブジェクトの内容を変更すると、どちらの配列の要素にも影響が出る。


ソース
array = ["a", 1, "b", 2, "c", 3]
for i in array
  p i
end
実行結果
"a"
1
"b"
2
"c"
3
1つの配列にいろんな型の値を入れることができる。


ソース
array = [[0, 1, 2], [3, 4, 5]]
for i in array
  for j in i
    p j
  end
end   
p array[1][0]
実行結果
0
1
2
3
4
5
3
配列の中に配列を入れて、2次元配列を作れる。


ソース
array = Array.new(5)
array[10] = 1
p array
実行結果
[nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 1]
配列は Array 型で、new で生成することができる。
初期値は nil。
確保していないインデックスに値を設定すると、
指定したところまで配列が拡張される。


ソース
array = Array.new(5, 10)
p array
実行結果
[10, 10, 10, 10, 10]
配列生成時に、初期値を指定することができる。


ソース
array = [0, 1, 2]
array.push(3)
array.push(4)
p array
実行結果
[0, 1, 2, 3, 4]
push() で配列に要素を追加できる。


ソース
array = [0, 1, 2, 3, 4]
p array.pop()
p array.pop()
p array
実行結果
4
3
[0, 1, 2]
pop() で要素を取り出せる。取り出すと、配列から要素が削除される。


ソース
list = [1, 2, 3] + [3, 3, 4, 5]
for i in list
  print i
end

print "\n"

list = [1, 2, 3, 4, 4, 5, 5] - [4, 5]
for i in list
  print i
end

print "\n"

list = [1, 2, 3] * 3
for i in list
  print i 
end
実行結果
1233345
123
123123123
配列の加算、減算、乗算が使える。除算はない。
加算は配列を単純に結合します。重複した要素も追加される。
減算は指定された同じ要素を全て削除します。
乗算は、配列を指定された回数分コピーして追加します。


ソース
array = [1, nil, 1, nil, 2, 2, 2]
for i in array.compact
  p i
end
実行結果
1
1
2
2
2
compact()で、nil の要素を削除します。


ソース
array = []
if array.empty?      then print "空" end
if array.count  == 0 then print "空" end
if array.length == 0 then print "空" end
if array.size   == 0 then print "空" end
実行結果
空空空空
配列が空かどうかのチェック。