在列表中§

有关 方法尾部,请参阅主要文档 在上下文中

multi method tail(List:D:)
multi method tail(List:D: $n --> Seq:D)

返回一个 Seq,其中包含列表中最后 $n 个项目。如果 $n <= 0,则返回一个空的 Seq。如果未指定参数,则默认为最后一个元素。如果列表是惰性的,则抛出异常。

示例

say <a b c d e>.tail(*-3);# OUTPUT: «(d e)␤» 
say <a b c d e>.tail(2);  # OUTPUT: «(d e)␤» 
say <a b c d e>.tail;     # OUTPUT: «e␤» 

在第一种情况下,$n 采用 WhateverCode 的形式,表示将从开头排除的元素数量。$n 可以是 Callable,在这种情况下,它将使用值 0 调用,或者可以转换为数字的任何其他内容,在这种情况下,它将使用该值作为输出 Seq 中的元素数量。

say <a b c d e>.tail{ $_ - 2 } ); # OUTPUT: «(c d e)␤»

在供应中§

有关 方法尾部,请参阅主要文档 在上下文中

multi method tail(Supply:D:)
multi method tail(Supply:D: Callable:D $limit)
multi method tail(Supply:D: \limit)

创建一个“尾部”供应,其语义与 List.tail 相同。

my $s = Supply.from-list(41032);
my $ts = $s.tail(2);
$ts.tap(&say);           # OUTPUT: «3␤2␤»

您可以使用 WhateverInf 调用 .tail;这将返回一个等效于初始供应的新供应。使用 WhateverCode 调用它等效于跳过该数字。

my $s = Supply.from-list(41032);
my $ts = $s.tail* - 2 );
$ts.tap(&say);           # OUTPUT: «3␤2␤»

此功能仅在 Raku 的 2020.07 版本中可用。

在任何中§

有关 例程尾部,请参阅主要文档 在上下文中

multi method tail() is raw
multi method tail($n)

返回对象的最后一个或 $n 个最后一个元素的列表。$n 可以是 Callable,通常是 WhateverCode,它将用于获取对象的除前 n 个元素之外的所有元素。

say (^12).reverse.tail ;     # OUTPUT: «0␤» 
say (^12).reverse.tail(3);   # OUTPUT: «(2 1 0)␤» 
say (^12).reverse.tail(*-7); # OUTPUT: «(4 3 2 1 0)␤» 

从 Rakudo 编译器的 2022.07 版本开始,还有一个 tail 的“子”版本。

multi tail(\specifier+values)

必须将尾部说明符作为第一个参数。其余参数将转换为 Seq,然后对其调用 tail 方法。