Курс по Raku / Напреднали / Оператори / Трейтове и прагми 🆕 / Exercises / Записваем параметър
Решение: Записваем параметър
Ето едно възможно решение на задачата.
Код
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.