12

我大多可以按照语法在文档页面上“向下钻取/切片”到具有多个维度(和展平)的数组中。一个非常酷的功能。例如给出:

my @a=[[1,2,3],
       [4,5,6],
       [7,8,9]];

我可以使用以下方法选择上述第 2 列:

say @a[0,1,2;1]; #This output (2,5,8)

是否可以以类似的紧凑语法提取对角线 (1,5,9)?

4

1 回答 1

12
say @a[ 0,1,2 ; { $++ } ] ; # (1 5 9)

因此,我使用了 , 而不是1, 计算结果为.1{ $++ }Block

当 Raku 遇到作为下标值的可调用代码对象时,它会为它正在评估的每个切片调用一次,在本例中是0第 th、1st 和2nd 行。

$是一个匿名标量状态变量。

于 2019-05-03T08:34:41.230 回答