role Positional[::T = Mu{ ... }

支持使用 [ ] 后缀运算符(通常是类列表对象)对它们进行索引的对象的角色。具有 Positional 角色的示例类型包括 ListArrayRangeBuf

方法§

方法 of§

method of()

返回位置容器元素的类型约束,即上面定义中的 T,如您所见,默认为 Mu。它作为类型对象返回。

my @þ;
say @þ.of.^name;   # OUTPUT: «Mu␤ 
my Str @þð;
say @þð.of.raku;   # OUTPUT: «Str␤» 
say (my int @).of# OUTPUT: «(int)␤» 

混合此角色的类应提供的方法§

方法 elems§

method elems()

应返回实例化对象中可用元素的数量。

方法 AT-POS§

method AT-POS(\position)

应返回给定位置的值/容器。

方法 EXISTS-POS§

method EXISTS-POS(\position)

应返回一个 Bool,指示给定位置是否实际具有值。

方法 STORE§

method STORE(\values:$INITIALIZE)

仅当您希望支持

my @a is Foo = 1,2,3;

绑定 Positional 角色实现的语法时,才应提供此方法。

应接受用于(重新)初始化对象的值。当首次在对象上调用该方法时,可选的命名参数将包含一个 True 值。应返回调用者。

另请参阅§

有关可为 Positional 角色实现的其他方法的信息,请参阅 为位置下标实现的方法

类型图§

Positional 的类型关系
raku-type-graph Positional Positional Mu Mu Any Any Any->Mu Cool Cool Cool->Any Iterable Iterable Range Range Range->Positional Range->Cool Range->Iterable Stringy Stringy Blob Blob Blob->Positional Blob->Stringy List List List->Positional List->Cool List->Iterable Associative Associative IO::Path::Parts IO::Path::Parts IO::Path::Parts->Positional IO::Path::Parts->Any IO::Path::Parts->Iterable IO::Path::Parts->Associative Uni Uni Uni->Positional Uni->Any Uni->Stringy Slip Slip Slip->List Array Array Array->List NFKC NFKC NFKC->Uni NFC NFC NFC->Uni NFD NFD NFD->Uni NFKD NFKD NFKD->Uni utf8 utf8 utf8->Any utf8->Blob Buf Buf Buf->Blob

展开上面的图表