3
0

【Ruby】配列の結合方法について

Last updated at Posted at 2024-07-22

はじめに

簡単なトランプゲームを作りました。その際、配列の結合方法が分からず調べたのでまとめておきます。
本記事では、実際にコードを書く際に試した方法を紹介します。

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入門(伊藤淳一 著)

おわりに

いかがだったでしょうか?
配列がネストされていることに気付かず、要素を取り出そうとしたら意図した挙動にならなかった。という経験から配列の結合方法を調べて記事にしてみました。
それぞれの特性を活かして使い分けてみてください。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0