Raku-Kurs / Fortgeschritten / Operatoren / Traits und Pragmas / Exercises / Ein beschreibbarer Parameter

Lösung: Ein beschreibbarer Parameter

Hier ist eine mögliche Lösung der Aufgabe.

Code

sub double($n is rw) {
    $n *= 2;
}

my $score = 21;
double($score);
say $score;

🦋 Den Quellcode finden Sie in der Datei writable-parameter.raku.

Ausgabe

42

Kommentare

  1. is rw bindet den Parameter $n an die Variable $score des Aufrufers, sodass $n *= 2 innerhalb von double $score selbst ändert — deshalb wird 42 ausgegeben.

  2. Ohne is rw wäre der Parameter schreibgeschützt und $n *= 2 wäre ein Kompilierzeitfehler. Wenn man ihn stattdessen mit is copy markieren würde, hätte double eine private Kopie zum Ändern, und $score bliebe bei 21.

Kursnavigation

Ein beschreibbarer Parameter   |   Ein benutzerdefinierter Trait