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年以來一直存在,因此實際上可能存在一些生態系統後果。 –