Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj / La metaobjekta protokolo 🆕 / Metametodoj
Kvizo — La metaobjekta protokolo
Kion presas la jena programo?
class Point {
has $.x;
has $.y;
}
say Point.^attributes.elems;| 0 | 1 |
| 1 | 2 |
| 0 | (Point) |
| 0 | eraron |
.^attributes estas metametodo — vokata per
.^ sur la metaobjekto de la tipo — kiu listigas la
atributojn, kiujn tipo deklaras, kaj .elems kalkulas ilin.
Point deklaras du atributojn, $.x kaj
$.y, do ĝi presas 2.