Курс Raku / Об’єкти, введення-виведення та винятки / Класи та об’єкти / Протокол метаоб’єктів 🆕 / Метаметоди

Тест — Протокол метаоб’єктів

Що виведе наведена програма?

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

say Point.^attributes.elems;
01
12
0(Point)
0помилку

.^attributes — це метаметод, який викликають через .^ для метаоб’єкта типу; він перелічує атрибути, оголошені типом, а .elems їх рахує. Point оголошує два атрибути, $.x та $.y, тож виводиться 2.

Навігація курсом

Метаметоди   |   Додавання методів під час виконання