Perl6中使用.append向数组追加多值出现嵌套问题如何解决?
解决Perl 6数组追加多个值时的嵌套问题
嘿,这个问题我之前也踩过坑!你遇到的嵌套结果,本质是因为直接把数组@values作为.append的参数时,Perl 6会把整个数组当成单个元素来处理,而不是自动把数组里的元素拆出来逐个追加。
要解决这个问题,只需要用Perl 6的展开操作符|,把@values里的元素“拆”成独立参数传递给.append就行。修改后的代码如下:
my @array = <a b>; my @values = 1,2,3; @array.append: |@values, 17; say @array; # 输出:[a b 1 2 3 17]
简单解释下:|@values会把数组@values展开成1、2、3这三个独立元素,和后面的17一起被.append逐个追加到@array中,自然就不会出现嵌套数组的情况了。
另外补充个小知识点:如果你用.push方法,同样可以用|展开数组来实现相同效果,代码是@array.push: |@values, 17;,结果和.append完全一致。
内容的提问来源于stack exchange,提问作者Martin Barth
相关产品推荐
相关产品推荐

