小编ran*_*ndy的帖子

支持 AT-POS 多维下标访问中的任意范围

我如何实现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

6
推荐指数
1
解决办法
72
查看次数

标签 统计

raku ×1