[英]What does ‘serial’ do?
從文檔中說,
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»
我不知道這個例程是做什么的,請有人解釋一下嗎?
在Supply
,它是一種信息方法,應該指示該 Supply 上是否永遠不會有任何並發emit
。
在HyperSeq
和RaceSeq
,它返回一個序列化的Seq
,那么你可以考慮它的對面hyper
和race
方法。
總的來說,它似乎返回了自己,從HyperSeq
和RaceSeq
角度來看,這似乎是有道理的。
是的,這些應該正確記錄,所以請創建一個文檔問題。 謝謝!
在 doc 示例中,它什么都不做。 也就是說,如果你刪除它,你會得到相同的結果:
my $b; # defaults to Any
say $b.^name; # OUTPUT: «Any»
my $breakfast = 'food';
$breakfast.say; # OUTPUT: «food»
更一般地說,如果您想改進文檔,我認為您最好忽略serial
方法,而不是打開指向此 SO 的文檔問題。
serial
方法似乎不是官方語言搜索“串行”的烘焙回購產生零匹配。
在 Rakudo 源代碼中,方法名稱serial
已被重載為具有以下三種含義之一:
一個布爾值,聲明一個Supply
序列是否總是串行的。 Rakudo 源示例: 1 , 2 。 在我看來,這就像一個不需要記錄的內部方法。
返回其調用者的“無操作” 。 我懷疑最好不要將其記錄在案,至少在其存在理由明確之前; 它的官方地位即規范(烤)是明確的; 和/或嘗試系統地記錄哪些操作設置了is nodal
。
以上似乎都不能保證普通用戶的注意或文檔。
serial
方法的Any
類定義似乎毫無意義 Any
類serial
方法返回self
,即在調用時它是一個無操作。
我目前不明白為什么有Any
類定義。
一個可能的觀點是,內部代碼對未知且通常不可知的類的實例進行了.serial
調用,因此需要在Any
類中對serial
進行默認定義。
但是在 rakudo 存儲庫中搜索“.serial”表明只調用了補給或 hyper/race seqs。
也就是說,我注意到Any
中proto serial
聲明的is nodal
特性,它緊跟在multi method serial
聲明之前。 也許這就是它在Any
的原因。
另請參閱Mu
和Any
方法的任意漂移。
定義和例子似乎反映了某人的幽默感。 我贊賞幽默的使用,但在這種情況下,我懷疑最好的改進是刪除您鏈接的頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.