Curso de Raku / Objetos, entrada/salida y excepciones / Clases y objetos / El protocolo de metaobjetos 🆕 / Metamétodos

Quiz — El MOP

¿Qué imprime el programa siguiente?

class Point {
    has $.x;
    has $.y;
}

say Point.^attributes.elems;
01
12
0(Point)
0un error

.^attributes es un metamétodo — llamado con .^ sobre el metaobjeto del tipo — que enumera los atributos que un tipo declara, y .elems los cuenta. Point declara dos atributos, $.x y $.y, así que imprime 2.

Metamétodos   |   Añadir métodos en tiempo de ejecución