“序列”是做什么的?

p6s*_*eve 9 perl6

从说的文档中,

Returns the self-reference to the instance itself:
    my $b; # defaults to Any 
    say $b.serial.^name;   # OUTPUT: «Any?» 
    my $breakfast = 'food';
    $breakfast.serial.say; # OUTPUT: «food?» 
Run Code Online (Sandbox Code Playgroud)

我没有最雾的例程,请问有人可以解释吗?

Eli*_*sen 10

Supplys上,这是一种信息方法,应该指示emit该Supply上永远不会有任何并发。

HyperSeq和上RaceSeq,它返回序列化Seq,因此您可以认为它与hyperand race方法相反。

通常,它似乎会返回自身,这从HyperSeq和的RaceSeq角度看都是有意义的。

是的,这些应该正确记录,因此请创建一个文档问题。谢谢!


rai*_*iph 7

在doc示例中,它什么也不做。也就是说,如果将其删除,则会得到相同的结果:

my $b; # defaults to Any 
say $b.^name;   # OUTPUT: «Any?» 
my $breakfast = 'food';
$breakfast.say; # OUTPUT: «food?» 
Run Code Online (Sandbox Code Playgroud)

更笼统地说,我认为您最好忽略该serial方法,除非您想改进文档,否则不要打开指向此SO的文档问题。

serial方法似乎不是官方语言

在烧烤仓库中搜索“序列”将得出零匹配。

在Rakudo源代码中,方法名称serial已重载为三种含义之一:

  • 声明Supply序列是否始终为串行的布尔值。Rakudo源的例子:12。在我看来,这似乎是不需要记录的内部方法。

  • 将并行序列(hyperrace)强制转换为同一序列的串行版本。在我看来,这似乎是不需要记录的内部方法。

  • 一个 “无操作”的返回其呼吁者。我怀疑最好不对其进行记录,至少要等到其存在的理由明确之后再进行记录。它的正式身份即规格(烤制)很明确;和/或尝试系统地记录哪些操作已is nodal设置。

以上似乎都不能引起普通用户的注意或说明。

方法的Any类定义serial似乎毫无意义

Anyserial方法返回self,叫即当它是一个无操作。

我目前不明白为什么要有一个Any类定义。

一个可能的点,这将是有.serial内部的代码在一个未知的情况下,一般不可知类的调用,因此需要有一个默认的定义serialAny类。

但是在rakudo存储库中搜索“ .serial”表明,仅对补给或超/竞赛序列进行了调用。

这就是说,我注意到is nodal的特质proto serial声明中Any立即之前的multi method serial声明。也许这就是它存在的原因Any

另请参见方法到Mu和的任意漂移Any

您引用的文档似乎毫无意义

这个定义和例子似乎反映出某人的幽默感。我称赞幽默的使用,但是在这种情况下,我怀疑最好的改进就是删除您链接的页面。