Курс по 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)Коментари
.^mroвръща веригата от типове, която Raku претърсва при разрешаването на метод.Веригата следва линията на наследяване стъпка по стъпка:
C, после родителят муB, после родителят наB—A, — и накраяAnyиMu, с които завършва всеки тип. По-дълбока йерархия просто удължава списъка.