Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Das Metaobjekt-Protokoll 🆕 / Meta-Methoden
Quiz — Das MOP
Was gibt das folgende Programm aus?
class Point {
has $.x;
has $.y;
}
say Point.^attributes.elems;| 0 | 1 |
| 1 | 2 |
| 0 | (Point) |
| 0 | ein Fehler |
.^attributes ist eine Metamethode — mit .^
auf dem Metaobjekt des Typs aufgerufen —, die die von einem Typ
deklarierten Attribute auflistet, und .elems zählt sie.
Point deklariert zwei Attribute, $.x und
$.y, daher wird 2 ausgegeben.