标签: arrays perl6 matrix-indexing arrayaccess
我通常可以按照syntax在文档页面上“向下钻取/切片”成具有多个维度(并展平)的数组。一个非常酷的功能。例如:
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)?
答案 0 :(得分:9)
say @a.[ 0,1,2 ; { $++ } ] ; # (1 5 9)
因此,我使用的是1,它是Block,而不是1,它的计算结果为{ $++ }。
1
Block
{ $++ }
当P6遇到可调用的代码对象作为下标值时,它将为要评估的每个切片调用一次,在这种情况下,第0,第1和第2行。
0
2
$是匿名标量状态变量。
$