Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Протокол метаоб’єктів 🆕 / Вправи / Порядок розв’язання методів

Розв’язання: Порядок розв’язання методів

Ось один із можливих варіантів розв’язання задачі.

Код

class A {
}

class B is A {
}

class C is B {
}

say C.^mro.map(*.^name);

🦋 Вихідний код можна знайти у файлі the-mro.raku.

Вивід

(C B A Any Mu)

Коментарі

  1. .^mro повертає ланцюжок типів, у якому Raku шукає, розв’язуючи метод.

  2. Ланцюжок іде лінією успадкування крок за кроком: C, потім його батько B, потім батько BA, і нарешті Any та Mu, якими закінчується кожен тип. Глибша ієрархія просто робить список довшим.

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

Порядок розв’язання методів   |   Ромб класів