💎

RubyのArrayオブジェクトについて解説

2021/03/30に公開

Arrayオブジェクトとは?

いわゆる「配列」のことで、複数のオブジェクトを格納できるオブジェクトです。

irb(main):039:0> [1, 2, 3, 4, 5]
=> [1, 2, 3, 4, 5]

Array の操作

push メソッドを使うと末尾にオブジェクトを追加できます。

irb(main):040:0> arr = []
=> []
irb(main):041:0> arr.push(100)
=> [100]

他にも末尾に追加する記法があるので紹介します。

irb(main):046:0> arr = []
=> []
irb(main):047:0> arr << 100
=> [100]

Array にオブジェクトを代入

まず、普通に Array を作ってみます。シングルクォートで囲った文字列を Array に格納してみます。

irb(main):052:0> arr = ['String1', 'String']
=> ["String1", "String"]
irb(main):053:0> arr
=> ["String1", "String"]

でもシングルクォートを度々書くのも面倒なので %w%[] という記法があります。

irb(main):057:0> arr = %w[String1 String2]
=> ["String1", "String2"]
irb(main):058:0> arr
=> ["String1", "String2"]

先ほどと同じ結果になっていることが分かりますね。
%w で囲われた配列では、要素はシングルクォートで囲う必要がなく
スペースで区切ってあげるだけでOKとなります。

Array の処理

each メソッド

each メソッドを使うと配列の各要素を取り出せます。

irb(main):064:1* arr.each do |i|
irb(main):065:1*   puts i
irb(main):066:0> end
1
2
3
4
5
=> [1, 2, 3, 4, 5]

map メソッド

map メソッドを使うと、配列の各要素を加工した配列を新たに作ることができます。
例えば各要素に「2」を掛けた配列にするにはこのように書きます。

irb(main):068:0> arr = [1, 2, 3, 4, 5]
=> [1, 2, 3, 4, 5]
irb(main):069:0> arr.map { |i| i*2 }
=> [2, 4, 6, 8, 10]

多重代入

次のような記法により、配列の各要素を変数に格納をすることができます。

irb(main):074:0> arr = [1, 2]
=> [1, 2]
irb(main):075:0> foo, bar = arr
=> [1, 2]
irb(main):076:0> foo
=> 1
irb(main):077:0> bar
=> 2

foo, bar それぞれに配列の 0 番目、1番目が格納されていることが分かるかと思います。

Discussion