如何快速将多维数组打平?
以下是一些示例:
# 2D array
my @a = [1,2],[3,4];
say @a».Slip.flat; # prints (1 2 3 4)
# 3D array
my @b = [[1,2],[3,4]],[[5,6],[7,8]];
say @b».Slip».flat».Slip.flat; # prints (1 2 3 4 5 6 7 8)
# but needs to know how many dimensions
# there are to flatten
可以在不编写递归进入它或没有知识其维度数量的情况下,对数组的数组(如 @b
)进行递归展平吗?
我之所以问这个问题是因为我相信编译器现在或将来的实现能够更好地优化基于运算符的解决方案而不是子程序。
[**]
。但现在,你可以使用[*;*;*;*;*]
(你可以指定比实际存在的维度更多)。请参见 https://dev59.com/W1oU5IYBdhLWcg3wu4ni#37230217。你认为你的问题是链接问题的重复还是需要自己回答? - raiph