Курс Raku / Розширені / Оператори / Трейти та прагми 🆕 / Вправи / Параметр для запису
Розв’язання: Параметр для запису
Ось один із можливих варіантів розв’язання задачі.
Код
sub double($n is rw) {
$n *= 2;
}
my $score = 21;
double($score);
say $score;🦋 Вихідний код можна знайти у файлі writable-parameter.raku.
Вивід
42Коментарі
is rwзв’язує параметр$nзі змінною викликача$score, тож$n *= 2усерединіdoubleзмінює саму$score, — саме тому виводиться42.Без
is rwпараметр був би доступний лише для читання, і$n *= 2став би помилкою під час компіляції. Позначення його якis copyнатомість дало бdoubleприватну копію для змін, лишивши$scoreнедоторканою зі значенням21.