🤦♂️
【Ruby】配列同士の結合
初歩的な知識が足りず、遅いコードを書いてしまっていたため反省のメモです。
結論
配列の結合は +演算子 でしよう
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