根据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
来使其成为一个。