はじめに
簡単なトランプゲームを作りました。その際、配列の結合方法が分からず調べたのでまとめておきます。
本記事では、実際にコードを書く際に試した方法を紹介します。
Rubyでの配列の結合方法
+演算子
+演算子を使って、2つの配列を結合することが出来ます。この方法では、新しい配列は作成され、元の配列は変更されません。
array1 = [1, 2, 3]
array2 = [4, 5, 6]
new_array = array1 + array2
puts new_array.inspect
#=> [1, 2, 3, 4, 5, 6]
concatメソッド
concatメソッドは、元の配列を変更して、指定した配列を末尾に追加します。
array1 = [1, 2, 3]
array2 = [4, 5, 6]
array1.concat(array2)
puts array1.inspect
#=> [1, 2, 3, 4, 5, 6]
puts array2.inspect
#=>[4, 5, 6]
pushメソッドとスプラット演算子の組み合わせ
pushメソッドにスプラット演算子を使うことで、複数の要素を一度に追加できます。これを利用して配列を結合することが出来ます。
array1.push(*array2)
puts array1.inspect
#=> [1, 2, 3, 4, 5, 6]
puts array2.inspect
#=>[4, 5, 6]
<<演算子とflattenメソッドの組み合わせ
<<演算子を使って配列同士を結合する場合は、結合結果がネストされてしまいます。結合後にflattenメソッドで1次元配列に変換する必要があります。
array1 = [1, 2, 3]
array2 = [4, 5, 6]
array1 << array2
array1.flatten!
puts array1.inspect
#=>[1, 2, 3, 4, 5, 6]
動作環境
- Ruby 3.3.2
参考文献
- プロを目指す人のためのRuby入門(伊藤淳一 著)
おわりに
いかがだったでしょうか?
配列がネストされていることに気付かず、要素を取り出そうとしたら意図した挙動にならなかった。という経験から配列の結合方法を調べて記事にしてみました。
それぞれの特性を活かして使い分けてみてください。