我有一个简短的示例,其中我想取出Array的两个元素,并将其替换为一个元素,即一个数组:
my @digits = <1 2 3>.map: { [ $_, $_ ] };
say @digits; # [[1 1] [2 2] [3 3]]
@digits.splice: 0, 2, [4,4];
say @digits; # [4 4 [3 3]]这不起作用,因为splice的替代品实际上是slurpy *@replacement,所以它将其全部拉平。
我可以尝试将其逐项列出,以便将其视为单个事物,但它仍然是扁平化的:
@digits.splice: 0, 2, $[4,4];
say @digits; 我可以将该项目放入另一个数组中,并获得我想要的内容,但这似乎有太多的工作(特别是因为我想要确定它是否被展平):
@digits.splice: 0, 2, [$[4,4]];
say @digits; # [[4 4] [3 3]]有没有更好的方法来解决这个问题?
发布于 2017-04-16 23:22:08
您可以使用([4,4],) (作为[$[4,4]]的替代
@digits.splice: 0, 2, ([4,4],); #or [[4,4],];或更多替代产品
@digits.splice: 0, 2, [4,4], Empty; #or ,slip();https://stackoverflow.com/questions/43437664
复制相似问题