是否有下标语法从2D数组中提取对角线?

drc*_*law 11 arrays perl6 arrayaccess matrix-indexing

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

my @a=[[1,2,3],
       [4,5,6],
       [7,8,9]];
Run Code Online (Sandbox Code Playgroud)

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

say @a[0,1,2;1]; #This output (2,5,8)
Run Code Online (Sandbox Code Playgroud)

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

rai*_*iph 9

say @a.[ 0,1,2 ; { $++ } ] ; # (1 5 9)
Run Code Online (Sandbox Code Playgroud)

所以我用的是代替1求值的。1{ $++ }Block

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

$ 是匿名标量状态变量。