Курс 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

Коментарі

  1. Pet компонує дві ролі одразу, здобуваючи і метод label, і метод status.

  2. Метод кожної ролі використовує атрибут (name або age), який надає клас Pet.

Навігація курсом

Улюбленець з ім’ям і віком   |   Робот, що танцює