在Perl6的方法聲明中加號意味着什麼?perl6中的方法聲明中還有什麼意義?
這裏是spec
submethod BUILD (+$tail, [email protected], *%extraargs) {
$.tail = $tail;
@:legs = @legs;
}
在Perl6的方法聲明中加號意味着什麼?perl6中的方法聲明中還有什麼意義?
這裏是spec
submethod BUILD (+$tail, [email protected], *%extraargs) {
$.tail = $tail;
@:legs = @legs;
}
大約一個星期前(9月2015)Larry Wall的推出了全新的+
parameter prefix,四個參數前綴(*
,**
,+
,|
)即表示slurpy (variadic) parameters之一。迄今爲止,他已將這個新前綴添加到Rakudo Perl 6編譯器中,添加了一些測試,給出了a brief informal description of it on #perl6,並將a section on it添加到相關語言設計文檔中。
在原來的問題中引用的例子,從被寫入一份非正式文件的檔案中取出,並凍結時間是十年前。當時+
參數前綴表示爲a named parameter as contrasted with a positional one。現在我們使用:
,因此:
submethod BUILD (:$tail, :@legs, *%extraargs) {
$.tail = $tail;
@.legs = @legs;
}
你的「規格」鏈接的例子都到了歷史文獻和語法早已在Perl 6走了,我不知道它用來做什麼,也許「至少有一個參數」,類似於正則表達式中的+
量詞。
有關最新規範,請閱讀http://perlcabal.org/syn/S06.html其中包含有關簽名和子例程的所有信息。