我如何实现AT-POS以支持多维范围,例如[0;*]和[*;0]?
在下面的实现中,我收到Index out of range错误:
class Foo {
has @.grid;
multi method elems { @!grid.elems }
multi method AT-POS($y, $x) is rw { @!grid[ $y ; $x ] }
multi method ASSIGN-POS ($y, $x, $new) { @!grid[ $y; $x ] = $new }
multi method EXISTS-POS($y, $x) { @!grid[ $y; $x ]:exists }
}
my $foo = Foo.new: :grid[ ['a'], ['b', 'c'] ];
say $foo[0;0]; # a
say $foo[0;*].elems; # Expect 1, …Run Code Online (Sandbox Code Playgroud) raku ×1