我只想在Ruby中连接多个数组,并且找不到令人满意的方法.
输入示例:
foo = [1, 2, 3]
bar = [4, 5, 6]
baz = [7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
预期结果:(不修改现有数组)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
我的实际数组要大得多,所以我对一个有效的解决方案很感兴趣.可能还有三个以上的数组,因此首选短语法.
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)
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗