Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj / La metaobjekta protokolo 🆕 / Exercises / La ordo de metodserĉado
Solvo: La ordo de metodserĉado
Jen ebla solvo de la tasko.
Kodo
class A {
}
class B is A {
}
class C is B {
}
say C.^mro.map(*.^name);🦋 Vi povas trovi la fontkodon en la dosiero the-mro.raku.
Eligo
(C B A Any Mu)Komentoj
.^mroredonas la ĉenon de tipoj, kiujn Raku traserĉas, kiam ĝi solvas metodon.La ĉeno sekvas la heredan linion paŝon post paŝo:
C, poste ĝia patroB, poste la patro deB,A, kaj fineAnykajMu, per kiuj ĉiu tipo finiĝas. Pli profunda hierarkio simple faras la liston pli longa.