🤦‍♂️

【Ruby】配列同士の結合

2022/01/26に公開

初歩的な知識が足りず、遅いコードを書いてしまっていたため反省のメモです。

結論

配列の結合は +演算子 でしよう

hoge = [1, 2, 3]
huga = [4, 5, 6]
hoge + huga
# => [1, 2, 3, 4, 5, 6]

どんなコード書いてたん?

ふと配列同士の結合をしたいと思って、覚えている知識の中で書いたら下記のコードが完成しました。

[hoge, huga].flatten
# => [1, 2, 3, 4, 5, 6]

+演算子でできると知っている方からしたら衝撃です。

一応速度測定

破壊的なメソッドは除きます。

require 'benchmark'

n = 1000
Benchmark.bm(10) do |x|
  x.report("+:") { n.times do; hoge + huga; end }
  x.report("flatten:") { n.times do; [hoge, huga].flatten; end}
end
# => 
#                  user     system      total        real
# +:           0.000187   0.000009   0.000196 (  0.000188)
# flatten:     0.001729   0.000007   0.001736 (  0.001737)

圧倒的+演算子

Discussion