Как эффективно объединить несколько массивов в Ruby?

Я просто хотел объединить несколько массивов в Ruby и не мог найти удовлетворительный способ сделать это.

Пример ввода:

foo = [1, 2, 3]
bar = [4, 5, 6]
baz = [7, 8, 9]

Ожидаемый результат: (без изменения существующих массивов)

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Мои настоящие массивымного больше, поэтому я заинтересован в эффективном решении. Также может быть более трех массивов, поэтому предпочтителен короткий синтаксис.

Что я пробовал до сих пор

foo + bar + baz является очевидным, это сжато и ясно. Но это оценивается как(foo + bar) + baz, Другими словами: он создает промежуточный массив[1, 2, 3, 4, 5, 6] это выбрасывается после всей операции. Как отмечено вдокументация:

повторное использование+= на массивах может быть довольно неэффективным

[*foo, *bar, *baz] в основном содержит элементы, которые тоже не очень эффективны для больших массивов. Это также больше похоже на хак для меня.

[foo, bar, baz].flatten(1) кажется, даже хуже, чем выше, с точки зрения производительности.

[].concat(foo).concat(bar).concat(baz) является самым быстрым, но выглядит громоздким и требует нескольких вызовов методов.

Разве не должно быть простого метода класса для такой основной задачи? Что-то вроде:

Array.concat(foo, bar, baz)

Я что-то упускаю из виду?

Ответы на вопрос(3)

Ваш ответ на вопрос