Curso de Raku / Objetos, entrada/salida y excepciones / Clases y objetos / Introspección de objetos / Exercises / Describa una clase
Solución: Describa una clase
Aquí tienes una posible solución para la tarea.
Código
class Animal {
}
class Dog is Animal {
}
say Dog.^name;
say Dog.^mro.elems;
say 'Cat' ∈ Dog.^mro.map(*.^name);🦋 Puedes encontrar el código fuente en el archivo describe-a-class.raku.
Salida
Dog
4
FalseComentarios
.^namedevuelve el nombre propio de la clase,Dog..^mrodevuelve la cadena de herencia y.elemsla cuenta. En la cadena hay cuatro tipos —Dog, su padreAnimaly los universalesAnyyMu—, así que el recuento es4..^mro.map(*.^name)convierte esa cadena en la lista de nombres de tipo,(Dog Animal Any Mu). El operador de pertenencia a conjuntos∈comprueba entonces siCates uno de ellos.Dogno desciende de ningúnCat, así que la respuesta esFalse.