Курс по Raku / Обекти, вход-изход и изключения / Класове и обекти / Протоколът на метаобектите 🆕 / Exercises / Редът на разрешаване на методите

Решение: Редът на разрешаване на методите

Ето едно възможно решение на задачата.

Код

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, с които завършва всеки тип. По-дълбока йерархия просто удължава списъка.

Навигация в курса

Редът на разрешаване на методите   |   Ромб от класове