2
我有这个简单的例子,我要拿出一个数组的两个元素,并与这是一个数组的单个元素替代它:如何解决Perl 6签名中的sl parameter参数?
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]]
是否有更好的方法来解决此问题?
你试过'** @ ...'或'+ @ ...'? –
我认为损失集装箱化实际上是一个bug,我已经报道过它,比如https://rt.perl.org/rt3/Public/Bug/Display.html?id=131162。任何修复都不会在这个月发布尽管如此,由于该错误至少自2015年以来一直存在,因此实际上可能存在一些生态系统后果。 –