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

Role for objects which support indexing them using the [ ] postcircumfix operator (usually list-like objects). Example types with Positional role include List, Array, Range, and Buf.

Methods§

method of§

method of()

Returns the type constraint for elements of the positional container, that is, the T in the definition above, which, as it can be seen, defaults to Mu. It is returned as a type object.

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

Methods that should be provided by classes that mix in this role§

method elems§

method elems()

Should return the number of available elements in the instantiated object.

method AT-POS§

method AT-POS(\position)

Should return the value / container at the given position.

method EXISTS-POS§

method EXISTS-POS(\position)

Should return a Bool indicating whether the given position actually has a value.

method STORE§

method STORE(\values:$INITIALIZE)

This method should only be supplied if you want to support the:

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

syntax for binding your implementation of the Positional role.

Should accept the values to (re-)initialize the object with. The optional named parameter will contain a True value when the method is called on the object for the first time. Should return the invocant.

See also§

See Methods to implement for positional subscripting for information about additional methods that can be implemented for the Positional role.

Typegraph§

Type relations for Positional
raku-type-graph Positional Positional Mu Mu Any Any Any->Mu Associative Associative Iterable Iterable IO::Path::Parts IO::Path::Parts IO::Path::Parts->Positional IO::Path::Parts->Any IO::Path::Parts->Associative IO::Path::Parts->Iterable Stringy Stringy Uni Uni Uni->Positional Uni->Any Uni->Stringy Blob Blob Blob->Positional Blob->Stringy Cool Cool Cool->Any Range Range Range->Positional Range->Iterable Range->Cool List List List->Positional List->Iterable List->Cool NFKC NFKC NFKC->Uni NFD NFD NFD->Uni NFKD NFKD NFKD->Uni NFC NFC NFC->Uni Slip Slip Slip->List Array Array Array->List utf8 utf8 utf8->Any utf8->Blob Buf Buf Buf->Blob

Expand chart above