如果我有一个公共的方法,我可以同时使用调用它的类中$.name
和self.name
:
class TEST {
has Int $.a;
method b($x) {
return $!a * $x;
}
method c($y) {
return self.b($y) * 3; # or $.b($y)
}
}
my $m = TEST.new(a => 10);
say $m.c(2); # 60
Run Code Online (Sandbox Code Playgroud)
但是,如果我创建b
一个私有方法,我只能调用它self!b
,而不是$!b
,否则我收到以下错误消息:
Attribute $!b not declared in class TEST
Run Code Online (Sandbox Code Playgroud)
这条规则背后的原因是什么?在自己的类中调用方法的规则是什么?
perl6 ×1