.push
メソッドとは
- 配列末尾への要素追加を行う破壊的メソッド
- 呼び出し先の配列を直接書き換え、変更後の配列自身を戻り値として返す
num = [1, 2, 3]
num.push(4)
num # => [1, 2, 3, 4]
# 元の変数numが書き換えられている破壊的メソッドであることがわかる(後述)
基本的な使い方
① 空の配列に任意のオブジェクトを(複数)追加する場合
number = []
x = 123
y = 456
number.push(x, y)
number # => [123, 456]
② 配列をそのまま要素として追加する場合
arr = []
arr.push([x, y])
arr # => [[123, 456]]
特徴
-
可変長引数に対応
- 複数の要素を一度に末尾へ追加可能
array = [1]
array.push(2, 3)
array # => [1, 2, 3]
-
破壊的メソッド
- 元の配列を直接書き換える
- 戻り値は変更後の配列になる
※ 通常、破壊的メソッドは末尾に ! が付くが、push は例外 -
他の挿入方法あり
- 例:array << obj
- ただし、単一の要素のみ追加できる
覚書
- 「末尾!!!!」ではなくても、空の配列を作ってただただ要素を追加可能
(基本的な書き方①)
str = []
a = "Pokemon"
str.push(a)
str # => ["Pokemon"]
まとめ
- 「末尾!に要素を追加」の末尾感が強すぎる印象が個人的にあるが、空の配列を作って要素を挿入する時にも全然使える。
-
<<
ではなく、.push
を使えば良さそう。 - 大は小を兼ねる。