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



根据6.d(当前版本(检查表,他们可以。

然而

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

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

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

submethod BUILD( :$!numillo = 3.5e0 ) {}

应该解决这个问题(注意签名中的(。 另请注意,3.5不是num,您必须通过添加e0来使其成为一个。

最新更新