Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Ролі / Вправи / Улюбленець з ім’ям і віком
Розв’язання: Улюбленець з ім’ям і віком
Ось один із можливих варіантів розв’язання задачі.
Код
role Named {
method label {
'I am ' ~ self.name;
}
}
role Aged {
method status {
self.age ~ ' years';
}
}
class Pet does Named does Aged {
has $.name;
has $.age;
}
my $p = Pet.new(name => 'Rex', age => 3);
say $p.label;
say $p.status;🦋 Вихідний код можна знайти у файлі named-aged-pet.raku.
Вивід
I am Rex
3 yearsКоментарі
Petкомпонує дві ролі одразу, здобуваючи і методlabel, і методstatus.Метод кожної ролі використовує атрибут (
nameабоage), який надає класPet.