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 →