Corso di Raku / Oggetti, input/output ed eccezioni / Classi e oggetti / Il protocollo dei metaoggetti 🆕 / Metametodi
Quiz — Il MOP
Cosa stampa il programma seguente?
class Point {
has $.x;
has $.y;
}
say Point.^attributes.elems;| 0 | 1 |
| 1 | 2 |
| 0 | (Point) |
| 0 | un errore |
.^attributes è un metametodo — chiamato con
.^ sul metaoggetto del tipo — che elenca gli attributi
dichiarati da un tipo, e .elems li conta.
Point dichiara due attributi, $.x e
$.y, quindi stampa 2.