class Fish {
has @.scales;
}
####
class Fish {
has @!scales;
method scales () { return @!scales }
# other stuff it does (not exhaustive)
submethod BUILD ( :@!scales ){}
method gist () { … }
method Capture () { \( :@!scales ) }
}
####
class Fish {
has @.scales is rw;
}
####
class Fish {
has @!scales;
# v---v
method scales () is rw { return-rw @!scales }
# other stuff it does (not exhaustive)
submethod BUILD ( :@!scales ){}
method gist () { … }
method Capture () { \( :@!scales ) }
}
####
my $fish = Fish.new;
$fish.scales = ('green','blue','yellow')
####
class Fish {
has @.scales;
multi method scales () { @!scales }
multi method scales ( +@new ) { @!scales = @new }
}
my $fish = Fish.new;
$fish.scales('green','blue','yellow');
say $fish.scales(); # does not clear it
$fish.scales(()); # clears it
####
class Fish {
has @.scales;
method scales ( |c (+@new) ) {
@!scales = @new if c;
return @!scales;
}
}
my $fish = Fish.new;
$fish.scales('green','blue','yellow');
say $fish.scales(); # does not clear it
$fish.scales(()); # clears it
####
class Fish {
has @.scales;
}
my $fish = Fish.new;
$fish.scales = ('green','blue','yellow');
say $fish.scales();
$fish.scales = (); # clears it