我可以创建一个具有固定大小的数组(shaped array):
my @array[3;3] = (
< 1 2 3 >,
< 4 5 6 >,
< 7 8 9 >
);
say @array; # [[1 2 3] [4 5 6] [7 8 9]]
say @array[1;1]; # 5
我该如何切片以获取我想要的任意一列或对角线(行很容易)?
如何将每个维度中的索引列表转换为正确放入方括号中的内容?
而且,肯定有一些花哨的语法可以避免做一些复杂的事情:
my @diagonal = gather {
my @ends = @array.shape.map: { (0 ..^ $^a).List };
for [Z] @ends {
take @array[ $_ ] # how do I make that $_[0];$_[1];...
};
}