根据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)»
属性似乎不可绑定,或者至少没有分配值。我在这里想念什么吗?
您只是将值分配给BUILD
中的命名参数,不是分配给属性!
submethod BUILD( :$!numillo = 3.5e0 ) {}
应该解决。另请注意,3.5
是[[not a num
,您必须通过添加e0
使它成为一个。