Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Протокол метаоб’єктів 🆕 / Вправи / Порядок розв’язання методів
Розв’язання: Порядок розв’язання методів
Ось один із можливих варіантів розв’язання задачі.
Код
class A {
}
class B is A {
}
class C is B {
}
say C.^mro.map(*.^name);🦋 Вихідний код можна знайти у файлі the-mro.raku.
Вивід
(C B A Any Mu)Коментарі
.^mroповертає ланцюжок типів, у якому Raku шукає, розв’язуючи метод.Ланцюжок іде лінією успадкування крок за кроком:
C, потім його батькоB, потім батькоB—A, і нарештіAnyтаMu, якими закінчується кожен тип. Глибша ієрархія просто робить список довшим.