Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Het meta-objectprotocol 🆕 / Exercises / De methoderesolutievolgorde

Oplossing: De methoderesolutievolgorde

Hier is een mogelijke oplossing voor de taak.

Code

class A {
}

class B is A {
}

class C is B {
}

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

🦋 Je kunt de broncode vinden in het bestand the-mro.raku.

Uitvoer

(C B A Any Mu)

Opmerkingen

  1. .^mro geeft de keten van typen terug die Raku doorzoekt bij het oplossen van een methode.

  2. De keten volgt de overervingslijn stap voor stap: C, dan zijn ouder B, dan de ouder van B, A, en ten slotte Any en Mu, waarmee elk type eindigt. Een diepere hiërarchie maakt de lijst eenvoudigweg langer.

Cursusnavigatie

De methoderesolutievolgorde   |   Een ruit van klassen