配列に要素を追加するメソッド

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

配列を操作するメソッドのうち、配列に要素を追加するメソッドを見ていきます。

スポンサーリンク

a = %w|dog horse bear|
 
# 配列に要素を追加
puts "---末尾に追加"
a.push("camel")
p a
a << "cat"
p a
puts "---先頭に追加"
a.unshift("cow")
p a
 
puts "---配列を連結"
p a + ["tigar", "lion"]
p a        # + は破壊的じゃないメソッド
a.concat(%w|koala gorilla|)    # 破壊的メソッド
p a
 
puts "---配列要素の置き換え・途中に追加"
a[1, 2] = ["mouse", "snake"]
p a
a[4..0] = ["dolphin", "monkey"]
p a
a[6, 2] = nil
p a        # nilを代入すると要素の削除となる

pushやpop、unshiftやshiftなどは、レシーバのオブジェクトそのものを変更します。
こういったレシーバオブジェクトそのものを変更してしまうメソッドを、破壊的メソッドと呼びます。
sort, sort!など同じ名前で、末尾に「!」(エクスクラメーションマーク)が付いているのは、破壊的メソッドを表します。
sortは破壊的でないメソッド、sort!は破壊的メソッドです。

実行結果。

---末尾に追加
["dog", "horse", "bear", "camel"]
["dog", "horse", "bear", "camel", "cat"]
---先頭に追加
["cow", "dog", "horse", "bear", "camel", "cat"]
---配列を連結
["cow", "dog", "horse", "bear", "camel", "cat", "tigar", "lion"]
["cow", "dog", "horse", "bear", "camel", "cat"]
["cow", "dog", "horse", "bear", "camel", "cat", "koala", "gorilla"]
---配列要素の置き換え・途中に追加
["cow", "mouse", "snake", "bear", "camel", "cat", "koala", "gorilla"]
["cow", "mouse", "snake", "bear", "dolphin", "monkey", "camel", "cat", "koala",
"gorilla"]
["cow", "mouse", "snake", "bear", "dolphin", "monkey", "koala", "gorilla"]
スポンサーリンク
 
スポンサーリンク