Cursus Raku / Geavanceerd / Operatoren / Traits en pragma’s / Exercises / Een schrijfbare parameter
Oplossing: Een schrijfbare parameter
Hier is een mogelijke oplossing voor de taak.
Code
sub double($n is rw) {
$n *= 2;
}
my $score = 21;
double($score);
say $score;🦋 Je kunt de broncode vinden in het bestand writable-parameter.raku.
Uitvoer
42Opmerkingen
is rwbindt de parameter$naan de variabele$scorevan de aanroeper, zodat$n *= 2binnendouble$scorezelf verandert — en daarom drukt het42af.Zonder
is rwzou de parameter alleen-lezen zijn en zou$n *= 2een compilatiefout opleveren. Hem in plaats daarvan alsis copymarkeren zoudoubleeen eigen kopie geven om te wijzigen, waarbij$scoreop21blijft staan.