Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Il protocollo dei metaoggetti 🆕 / Exercises / L’ordine di risoluzione dei metodi

Soluzione: L’ordine di risoluzione dei metodi

Ecco una possibile soluzione del compito.

Codice

class A {
}

class B is A {
}

class C is B {
}

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

🦋 Trova il programma nel file the-mro.raku.

Output

(C B A Any Mu)

Commenti

  1. .^mro restituisce la catena di tipi che Raku percorre quando risolve un metodo.

  2. La catena segue la linea di ereditarietà un passo alla volta: C, poi il suo genitore B, poi il genitore di B cioè A, e infine Any e Mu, con cui ogni tipo termina. Una gerarchia più profonda allunga semplicemente l’elenco.

L’ordine di risoluzione dei metodi   |   Un rombo di classi