在Perl 6中调用类内的私有方法
在Perl 6中,我无法在类中调用私有方法:在Perl 6中调用类内的私有方法,perl,raku,Perl,Raku,在Perl 6中,我无法在类中调用私有方法: class MyClass { method !my-private-method($var1) { # .... } method my-method() { my $my-var1 = !my-private-method(123); # not found (Undeclared routines) my $my-var1 = $!my-private-method(123); # not found (
class MyClass {
method !my-private-method($var1) {
# ....
}
method my-method() {
my $my-var1 = !my-private-method(123); # not found (Undeclared routines)
my $my-var1 = $!my-private-method(123); # not found (Undeclared routines)
my $my-var1 = $.my-private-method(123); # not found (Undeclared routines)
my $my-var1 = my-private-method(123); # not found (Undeclared routines)
那么如何从
我的方法调用我的私有方法?您必须在实例对象上调用私有方法
my $my-var1 = self!my-private-method(123);
应该可以工作。您确定那些带有破折号的变量和方法名吗?它有点像COBOL…@JonathanLeffler,是的。出于好奇,有没有办法在没有self
的情况下称它为COBOL?@jawanam我不确定-我自己也是一个非常优秀的新手。你可以在类对象上称它。如果您想要一个私有子例程,只需在类定义中编写一个子例程,因为默认情况下子例程是词法的。