4

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

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

谢谢

4

1 回答 1

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 )
于 2017-01-19T21:42:56.767 回答