perl6 - 赋值给参数

use*_*164 8 parameters subroutine perl6

有没有办法对形式参数进行赋值?

就像是:

sub myfunc($n) {
    $n = $n + 5;
    return $n;
}
Run Code Online (Sandbox Code Playgroud)

或者,我是否必须创建一个新变量并为其分配$ n的值?

Eli*_*sen 8

您可以is copy在参数上使用特征:

sub myfunc($n is copy) {
    $n = $n + 5;
    return $n;
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅https://docs.perl6.org/type/Signature#index-entry-trait_is_copy.