相关疑难解决方法(0)

在Perl 6中使用其类中的公共和私有方法

如果我有一个公共的方法,我可以同时使用调用它的类中$.nameself.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

11
推荐指数
1
解决办法
185
查看次数

标签 统计

perl6 ×1