Курс по Raku / Обекти, вход-изход и изключения / Класове и обекти / Атрибути / Exercises / Променлив надпис
Решение: Променлив надпис
Ето едно възможно решение на задачата.
Код
class Label {
has $.text is rw;
}
my $l = Label.new(text => 'draft');
$l.text ~= ' (revised)';
say $l.text;🦋 Намерете програмата във файла changeable-label.raku.
Изход
draft (revised)Коментари
Трейтът
is rwкара аксесора да върне записваем контейнер, така че той може да стои отляво на присвояване.Понеже е записваем, съставният оператор
~=също работи с него:$l.text ~= ' (revised)'прочита текущия текст, долепя наставката и записва резултата обратно — всичко това през същия аксесор.
Навигация в курса
← Променлив надпис | Методи →