In List§
请参阅主要文档 in context 了解方法 head
multi method head(Any:) is rawmulti method head(Any: Callable )multi method head(Any: )
此方法直接从 Any
继承,它返回列表的第一个$n
项,如果 $n
<= 0,则返回一个空列表,或者如果没有参数,则返回第一个元素。采用 Callable
的版本使用 WhateverCode
指定所有元素,从第一个元素开始,但最后一个元素除外。
示例
say <a b c d e>.head ; # OUTPUT: «a»say <a b c d e>.head(2); # OUTPUT: «(a b)»say <a b c d e>.head(*-3); # OUTPUT: «(a b)»
In Supply§
请参阅主要文档 in context 了解方法 head
multi method head(Supply:)multi method head(Supply: Callable )multi method head(Supply: \limit)
创建一个“head”供应,其语义与 List.head 相同。
my = Supply.from-list(4, 10, 3, 2);my = .head(2);.tap(); # OUTPUT: «410»
自 2020.07 版本起,WhateverCode
也可以使用,其语义与 List.head
相同
my = Supply.from-list(4, 10, 3, 2, 1);my = .head( * - 2);.tap(); # OUTPUT: «4103»
In Any§
请参阅主要文档 in context 了解例程 head
multi method head(Any:) is rawmulti method head(Any: Callable )multi method head(Any: )
返回对象中的第一个元素,或如果使用,则返回第一个 $n
。
"aaabbc".comb.head.put; # OUTPUT: «a»say ^10 .head(5); # OUTPUT: «(0 1 2 3 4)»say ^∞ .head(5); # OUTPUT: «(0 1 2 3 4)»say ^10 .head; # OUTPUT: «0»say ^∞ .head; # OUTPUT: «0»
在前两种情况下,结果是不同的,因为在 Mix
中没有定义的顺序。在其他情况下,它返回一个 Seq
。可以使用 Callable
返回除最后一个元素之外的所有元素
say (^10).head( * - 3 );# OUTPUT: «(0 1 2 3 4 5 6)»
从 Rakudo 编译器的 2022.07 版本开始,还提供了 head
的“sub”版本。
multi head(\specifier, +values)
它必须将头说明符作为第一个参数。其余参数将转换为 Seq
,然后对其调用 head
方法。