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;
01
12
0(Point)
0ein 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.

Kursnavigation

Meta-Methoden   |   Methoden zur Laufzeit hinzufügen