根据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)»
该属性似乎不可绑定(bind),或者至少没有分配值。我在这里遗漏了什么吗?
最佳答案
您只是在BUILD
中为命名参数赋值,而不是为属性!
submethod BUILD( :$!numillo = 3.5e0 ) {}
应该解决这个问题(注意签名中的!)。另请注意,3.5
不是 num
,您必须通过添加 e0
将其变为 1。
关于syntax - 原生属性可以用作参数中的绑定(bind)目标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59369388/