In Array§
See primary documentation in context for method shift
method shift(Array:D:) is nodal
Removes and returns the first item from the array. Fails if the array is empty.
Example:
my @foo = <a b>; say @foo.shift; # OUTPUT: «a» say @foo.shift; # OUTPUT: «b» say @foo.shift; CATCH { default { put .^name, ': ', .Str } }; # OUTPUT: «X::Cannot::Empty: Cannot shift from an empty Array»
In role Buf§
See primary documentation in context for method shift
method shift()
Removes and returns the first element of the buffer.
my $bú = Buf.new( 1, 1, 2, 3, 5 ); say $bú.shift(); # OUTPUT: «1» say $bú.raku; # OUTPUT: «Buf.new(1,2,3,5)»
In Independent routines§
See primary documentation in context for sub shift
multi shift(@a) is raw
Calls method shift
on the Positional
argument. That method, on a mutable collection that actually implements it (such as an Array
or a Buf
), is supposed to remove and return the first element, or return a Failure
if the collection is empty.
Example:
say shift [1,2]; # OUTPUT: «1»
my @a of Int = [1]; say shift @a; # OUTPUT: «1» say shift @a; # ERROR: «Cannot shift from an empty Array[Int]»