在 Map 中§

有关方法列表,请参阅主要文档 上下文

multi method list(Map:D: --> List:D)

返回 Map 中所有键和值的一个 ListPair 对象。

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

在 Match 中§

有关方法列表,请参阅主要文档 上下文

返回位置子匹配列表。

在 Failure 中§

有关方法列表,请参阅主要文档 上下文

multi method list(Failure:D:)

将失败标记为已处理并抛出调用者的 异常

在 List 中§

有关例程列表,请参阅主要文档 上下文

multi        list(+list)
multi method list(List:D:)

该方法只返回调用者 self。子例程遵循 单参数规则:如果使用单个参数调用,该参数是非 项目化 Iterable,则返回基于参数 迭代器List;否则只返回参数列表。

例如

my $tuple = (12);         # an itemized List 
put $tuple.list.raku;       # OUTPUT: «(1, 2)␤» 
put list($tuple).raku;      # OUTPUT: «($(1, 2),)␤» 
put list(|$tuple).raku;     # OUTPUT: «(1, 2)␤»

最后一条语句使用 prefix:<|> 运算符将元组展平为参数列表,因此等效于

put list(12).raku;        # OUTPUT: «(1, 2)␤»

还有其他方法可以列出项目化单个参数的元素。例如,你可以 去容器化 参数或使用 @ 列表上下文化程序

put list($tuple<>).raku;    # OUTPUT: «(1, 2)␤» 
put list(@$tuple).raku;     # OUTPUT: «(1, 2)␤» 

请注意,将类型对象转换为列表可能不会达到你的预期

put List.list.raku;         # OUTPUT: «(List,)␤»

这是因为接受类型对象作为调用者的 .list 候选是由 Any 提供的。该候选返回一个包含一个元素的列表:类型对象 self。如果你正在开发一个集合类型,其类型对象应为空集合的有效表示,则可能希望为未定义的调用者提供你自己的候选或使用“only”方法覆盖 Any: 候选。例如

my class LinkedList {
    has $.value;            # the value stored in this node 
    has LinkedList $.next;  # undefined if there is no next node 
 
    method values--> Seq:D{
        my $node := self;
        gather while $node {
            take $node.value;
            $node := $node.next;
        }
    }
 
    method list--> List:D{
        self.values.list;
    }
}
 
my LinkedList $nodes;       # an empty linked list 
put $nodes.list.raku;       # OUTPUT: «()␤» 

在 Channel 中§

有关方法列表,请参阅主要文档 上下文

method list(Channel:D:)

返回一个基于 Seq 的列表,该列表将迭代队列中的项目并从队列中删除每个项目。只有在调用 close 方法后才能终止。

my $c = Channel.new$c.send(1); $c.send(2);
$c.close;
say $c.list# OUTPUT: «(1 2)␤»

In Supply§

有关方法列表,请参阅上下文中的主要文档

multi method list(Supply:D:)

点击调用它的Supply,并返回一个惰性列表,该列表将随着Supply发出值而具体化。一旦Supply“完成”,该列表将终止。如果Supply“退出”,则一旦达到惰性列表中的该点,就会抛出异常。

In Backtrace§

有关方法列表,请参阅上下文中的主要文档

multi method list(Backtrace:D:)

为此回溯返回一个Backtrace::Frame对象列表。

In Any§

有关方法列表,请参阅上下文中的主要文档

multi method list(Any:U:)
multi method list(Any:D \SELF:)

将中缀,运算符应用于调用者并返回结果List

say 42.list.^name;           # OUTPUT: «List␤» 
say 42.list.elems;           # OUTPUT: «1␤»

Any的子类可以选择返回任何从.list中执行Positional角色的核心类型。使用.List专门强制转换为List

@还可以用作列表或Positional上下文化器

my $not-a-list-yet = $[1,2,3];
say $not-a-list-yet.raku;             # OUTPUT: «$[1, 2, 3]␤» 
my @maybe-a-list = @$not-a-list-yet;
say @maybe-a-list.^name;              # OUTPUT: «Array␤» 

在第一种情况下,列表是逐项的。@作为前缀通过调用.list将初始标量置于列表上下文中,并将其转换为Array

In Range§

有关方法列表,请参阅上下文中的主要文档

multi method list(Range:D:)

生成范围表示的元素列表。

say (1..5).list;                                  # OUTPUT: «(1 2 3 4 5)␤» 
say (1^..^5).list;                                # OUTPUT: «(2 3 4)␤»

In role Buf§

有关方法列表,请参阅上下文中的主要文档

multi method list(Buf:D:)

返回一个List整数。

say Buf.new(122,105,112,205).list# OUTPUT: «(122 105 112 205)␤»

In role Blob§

有关方法列表,请参阅上下文中的主要文档

multi method list(Blob:D:)

返回一个List整数

say "zipi".encode("ascii").list# OUTPUT: «(122 105 112 105)␤»

In role PositionalBindFailover§

有关方法列表,请参阅上下文中的主要文档

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

基于iterator方法返回一个List,而不缓存它。

In Capture§

有关方法列表,请参阅上下文中的主要文档

method list(Capture:D:)

返回Capture的位置部分。

my Capture $c = \(235apples => (red => 2));
say $c.list# OUTPUT: «(2 3 5)␤»

In Uni§

有关方法列表,请参阅上下文中的主要文档

method list(Uni:D:)

返回一个Seq整数代码点。

In role QuantHash§

请参阅 上下文中 的主要文档,了解方法列表

multi method list(QuantHash:D:)

返回 QuantHash 中所有键和值构成的 Pair 对象列表。