role Metamodel::PrivateMethodContainer { ... }

警告:此角色是 Rakudo 实现的一部分,不属于 Raku 语言规范。

在 Raku 中,类、角色和语法可以具有私有方法,即仅能从其内部调用的方法,并且不会被继承类型继承。

class A {
    # the ! declares a private method 
    method !double($x{
        say 2 * $x;
    }
    method call-double($y{
        # call with ! instead of . 
        self!double($y);
    }
}

出于分派和作用域的目的,私有方法更接近于子例程,而不是方法。但是,它们与方法共享对 self 和属性的访问。

方法§

方法 add_private_method§

method add_private_method($obj$name$code)

添加名称为 $name 的私有方法 $code

方法 private_method_table§

method private_method_table($obj)

返回 name => &method_object 的哈希

方法 private_methods§

method private_methods($obj)

返回私有方法名称列表。

方法 private_method_names§

method private_method_names($obj)

private_methods 的别名。

方法 find_private_method§

method find_private_method($obj$name)

查找私有方法。否则,如果不存在,则返回 Mu