In List§

See primary documentation in context for routine kv

sub    kv($list --> Seq:D)
method kv(List:D: --> Seq:D)

Returns an interleaved sequence of indexes and values. For example

say <a b c>.kv# OUTPUT: «(0 a 1 b 2 c)␤»

In Pair§

See primary documentation in context for method kv

multi method kv(Pair:D: --> List:D)

Returns a two-element List with the key and value parts of Pair, in that order. This method is a special case of the same-named method on Hash, which returns all its entries as a list of keys and values.

my $p = (Raku => "d");
say $p.kv[0]; # OUTPUT: «Raku␤» 
say $p.kv[1]; # OUTPUT: «d␤»

In Capture§

See primary documentation in context for method kv

multi method kv(Capture:D: --> Seq:D)

Returns a Seq of alternating keys and values. The positional keys and values, if any, comes first followed by the named keys and values.

my $capture = \(23apples => (red => 2));
say $capture.kv# OUTPUT: «(0 2 1 3 apples red => 2)␤»

In role Setty§

See primary documentation in context for method kv

multi method kv(Setty:D: --> Seq:D)

Returns a Seq of the set's elements and True values interleaved.

my $s = Set.new(123);
say $s.kv;                                        # OUTPUT: «(3 True 1 True 2 True)␤»

In role Baggy§

See primary documentation in context for method kv

method kv(Baggy:D: --> Seq:D)

Returns a Seq of keys and values interleaved.

my $breakfast = bag <eggs spam spam spam>;
say $breakfast.kv;                                # OUTPUT: «(spam 3 eggs 1)␤» 
 
my $n = ("a" => 5"b" => 2"a" => 1).BagHash;
say $n.kv;                                        # OUTPUT: «(a 6 b 2)␤»

In role Enumeration§

See primary documentation in context for method kv

multi method kv(::?CLASS:D:)

Returns a list with key and value of the enum-pair.

say g.kv# OUTPUT: «(g 1)␤» 

In Map§

See primary documentation in context for method kv

method kv(Map:D: --> Seq:D)

Returns a Seq of keys and values interleaved.

Map.new('a'1'b'2).kv  # (a 1 b 2)

In Any§

See primary documentation in context for routine kv

multi method kv(Any:U:)
multi method kv(Any:D:)
multi        kv($x)

Returns an empty List if the invocant is a type object:

Sub.kv.say ;# OUTPUT: «()␤»

It calls list on the invocant for value objects and returns the result of List.kv on it as a list where keys and values will be ordered and contiguous

<1 2 3>.kv.say# OUTPUT: «(0 1 1 2 2 3)␤»

In the case of Positionals, the indices will be considered keys.