本机属性可以用作参数中的绑定目标吗?

jjm*_*elo 8 syntax raku

根据6.d (current version) check list,他们可以。

然而,

class Foo { 
    has num $.numillo;
    submethod BUILD( :$numillo = 3.5 ) {}
};
my $foo = Foo.new;
say $foo.raku; # OUTPUT:  «Foo.new(numillo => 0e0)?»  
Run Code Online (Sandbox Code Playgroud)

该属性似乎不可绑定,或者至少没有分配值。我在这里错过了什么吗?

Eli*_*sen 11

您只是为 中的命名参数赋值BUILD而不是属性!

submethod BUILD( :$!numillo = 3.5e0 ) {}
Run Code Online (Sandbox Code Playgroud)

应该解决这个问题(注意签名中的)。请注意,3.5不是一个num,你就必须通过增加使它一个e0