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.

Type Graph §

Type relations for Positional
perl6-type-graph Positional Positional Stringy Stringy Blob Blob Blob->Positional Blob->Stringy Mu Mu Any Any Any->Mu Cool Cool Cool->Any Iterable Iterable List List List->Positional List->Cool List->Iterable Uni Uni Uni->Positional Uni->Stringy Uni->Any Range Range Range->Positional Range->Cool Range->Iterable Slip Slip Slip->List Array Array Array->List NFKD NFKD NFKD->Uni NFKC NFKC NFKC->Uni NFD NFD NFD->Uni NFC NFC NFC->Uni Buf Buf Buf->Blob utf8 utf8 utf8->Blob utf8->Any

Expand above chart

Generated from

Generated from Type/Positional.pod6