Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Introspezione degli oggetti / Exercises / Descrivete una classe
Soluzione: Descrivete una classe
Ecco una possibile soluzione del compito.
Codice
class Animal {
}
class Dog is Animal {
}
say Dog.^name;
say Dog.^mro.elems;
say 'Cat' ∈ Dog.^mro.map(*.^name);🦋 Trova il programma nel file describe-a-class.raku.
Output
Dog
4
FalseCommenti
.^namerestituisce il nome proprio della classe,Dog..^mrorestituisce la catena di ereditarietà, e.elemsla conta. Nella catena ci sono quattro tipi —Dog, il suo genitoreAnimale gli universaliAnyeMu— quindi il conteggio è4..^mro.map(*.^name)trasforma quella catena nell’elenco dei nomi di tipo,(Dog Animal Any Mu). L’operatore di appartenenza insiemistica∈controlla poi seCatè uno di essi.Dognon discende da alcunCat, quindi la risposta èFalse.