role Metamodel::PrivateMethodContainer
role Metamodel::PrivateMethodContainer { ... }
Warning: this role is part of the Rakudo implementation, and is not a part of the Raku language specification.
In Raku, classes, roles and grammars can have private methods, that is, methods that are only callable from within it, and are not inherited by types derived by inheritance.
class A {
# the ! declares a private method
method !double($x) {
say 2 * $x;
}
method call-double($y) {
# call with ! instead of .
self!double($y);
}
}
For the purposes of dispatching and scoping, private methods are closer
to subroutines than to methods. However they share access to self
and
attributes with methods.
Methods
method add_private_method
method add_private_method($obj, $name, $code)
Adds a private method $code
with name $name
.
method private_method_table
method private_method_table($obj)
Returns a hash of name => &method_object
method private_methods
method private_methods($obj)
Returns a list of private method names.
method private_method_names
method private_method_names($obj)
Alias to private_methods
.
method find_private_method
method find_private_method($obj, $name)
Locates a private method. Otherwise, returns Mu if it doesn't exist.