syntax - 原生属性可以用作参数中的绑定(bind)目标吗?

标签 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)␤»  

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

最佳答案

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

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

应该解决这个问题(注意签名中的!)。另请注意,3.5 不是 num,您必须通过添加 e0 将其变为 1。

关于syntax - 原生属性可以用作参数中的绑定(bind)目标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59369388/

相关文章:

java - 在 Java 中如何访问命令行上提供的属性?

syntax - 奇怪的语法错误 'error: expected one of ` ,` or ` :`, found ` else`'

Python 字符串/参数操作

java - 新的 Java 8+ 分隔符(标点符号)——它们如何/在哪里使用?

raku - 支持 AT-POS 多维下标访问中的任意范围

stdin - perl6 如何从标准输入读取并获取命令行参数?

raku - 创建任意分组的子列表

C++,为什么array=ptr合法?

Perl 6 命名空间和模块系统

raku - 为什么 Bench 模块的 "wallclock"秒报告如此离谱?