Camelia
Prev: Class Methods

Private Attributes

Using exlamation mark as the twigil indicates tha the attribute is private. So has $!x will create a variable that can be accessed from within the class bug which won't have an accessor from the outside world.
examples/classes/point_04.p6
use v6;

class Point {
    has $.x is rw;
    has $.y is rw;
    
    has $!weight;
    
    method reset {
        $.x = 0;
        $.y = 0;
        $!weight = 0;
    }
};

my $a = Point.new(x => 23, y => 42, weight => 2);

say $a.x;  # 23
#say $a.weight;  # Exception: Could not locate a method 'weight' to invoke on class 'Point'

$a.reset;

say $a.x;  # 0

Prev: Class Methods

Table of Contents

Comments

In the comments, please wrap your code snippets within <pre> </pre> tags and use spaces for indentation.
comments powered by Disqus

Perl 6 Tricks and Treats newsletter

Register to the free newsletter now, and get updates and news.
Email:
Name: