在docs中,
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»
我没有这个程序最雾的地方,请有人可以解释吗?
答案 0 :(得分:9)
在Supply
上,这是一种信息方法,应该指示该供应上是否永远不会存在任何并发的emit
。
在HyperSeq
和RaceSeq
上,它返回序列化的Seq
,因此您可以认为它与hyper
和race
方法相反。
通常,它似乎会返回自身,这从HyperSeq
和RaceSeq
的角度来看似乎很有意义。
是的,应该正确地记录这些内容,因此请创建一个文档问题。谢谢!
答案 1 :(得分:7)
在doc示例中,它什么也不做。也就是说,如果将其删除,则会得到相同的结果:
my $b; # defaults to Any
say $b.^name; # OUTPUT: «Any»
my $breakfast = 'food';
$breakfast.say; # OUTPUT: «food»
更笼统地说,如果您想改善文档,那么我认为最好不要使用serial
方法,而要打开指向此SO的文档问题。
serial
方法似乎不是官方语言A search of the roast repo for "serial"得出的匹配为零。</ p>
在Rakudo源代码中,方法名serial
已重载为具有以下三种含义之一:
一个布尔值,用于声明Supply
序列是否始终是串行的。 Rakudo源示例:1,2。在我看来,这就像不需要记录的内部方法。
一个"no op",返回其请求者。我怀疑最好不对其进行记录,至少要等到其存在的理由明确之后再进行记录。它的正式身份即规格(烤制)很明确;和/或尝试系统地记录哪些操作设置了is nodal
。
以上似乎都不值得普通用户的注意或说明。
Any
方法的serial
类定义似乎毫无意义 The Any
class serial
method返回self
,即被调用时为空操作。
我目前不明白为什么会有Any
类定义。
可能的一点是,内部代码会在未知且通常不可知的类的实例上进行.serial
调用,因此{中需要有serial
的默认定义{1}}类。
但是a search of the rakudo repo for ".serial"建议仅对补给或超级/竞赛序列进行呼叫。
也就是说,我注意到Any
声明之前的is nodal
中proto serial
声明中的Any
特征。也许这就是它在multi method serial
中的原因。
另请参阅Arbitrary drift of methods to Mu
and Any
。
定义和示例似乎反映出某人的幽默感。我称赞幽默的使用,但是在这种情况下,我怀疑最好的改进就是删除您链接的页面。