在 Map 中§

有关方法 pairs的详细信息,请参见上下文中的主要文档

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

返回 Map 中所有对的Seq

my $m = Map.new('a' => (23), 'b' => 17);
say $m.pairs# OUTPUT: «(a => (2 3) b => 17)␤»

在 List 中§

有关例程 pairs的详细信息,请参见上下文中的主要文档

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

返回一对序列,其中索引作为键,列表值作为值。

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

在 Any 中§

有关方法 pairs的详细信息,请参见上下文中的主要文档

multi method pairs(Any:U:)
multi method pairs(Any:D:)

如果调用者是类型对象,则返回一个空的List

say Num.pairs# OUTPUT: «()␤»

对于值对象,它通过list方法将调用者转换为List,并返回List.pairs的结果。

<1 2 2 3 3 3>.Bag.pairs.say;# OUTPUT: «(1 => 1 3 => 3 2 => 2)␤»

在这种情况下,包中的每个元素(带权重)都将转换为一对。

在 role Baggy 中§

有关方法 pairs的详细信息,请参见上下文中的主要文档

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

返回所有元素及其各自的权重,作为SeqPair,其中键是元素本身,值是该元素的权重。

my $breakfast = bag <bacon eggs bacon>;
my $seq = $breakfast.pairs;
say $seq.sort;                                    # OUTPUT: «(bacon => 2 eggs => 1)␤»

在 Capture 中§

有关方法 pairs的详细信息,请参见上下文中的主要文档

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

返回所有参数(位置参数后跟命名参数),作为SeqPair。位置参数的键是其各自的序数(从零开始),而命名参数的键是其名称。

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

在 Pair 中§

有关方法 pairs的详细信息,请参见上下文中的主要文档

multi method pairs(Pair:D:)

返回一个Pair列表,即此列表。

my $p = (Raku => "d");
say $p.pairs.^name# OUTPUT: «List␤» 
say $p.pairs[0];    # OUTPUT: «Raku => d␤»