如何在创建后更改Perl6中数组的大小?

时间:2017-01-19 20:03:03

标签: arrays perl6 rakudo

在perl6中我可以创建一个固定大小的数组,如下所示: 我的@array [5];

如何稍后将数组的大小更改为更大,例如我希望数组的大小为7

由于

1 个答案:

答案 0 :(得分:5)

您无法更改已存在的形状阵列的形状。

要执行此类操作,您可以将位置变量绑定到新数组。

my @array[5];
@array := my @[7];

我认为在规范测试中没有关于切换声明的形状数组的测试(我认为不应该存在)

一种可能更安全的方法是声明没有形状的数组并立即将其绑定到具有起始形状的数组;

my @array := my @[5];
@array := my @[7];

我说这个更安全的原因是编译器可能进行一些优化,假设它总是具有声明的形状。

@array[*-1] => @array[4]

@array[6] => Failure.new(…) # ( or even a compile-time error )