Курс по Raku / Обекти, вход-изход и изключения / Класове и обекти / Протоколът на метаобектите 🆕 / Метаметоди

Тест — Протоколът на метаобектите

Какво отпечатва следната програма?

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

say Point.^attributes.elems;
01
12
0(Point)
0грешка

.^attributes е метаметод — извикан с .^ върху метаобекта на типа, — който изброява атрибутите, декларирани от типа, а .elems ги преброява. Point декларира два атрибута, $.x и $.y, така че се отпечатва 2.

Навигация в курса

Метаметоди   |   Добавяне на методи по време на изпълнение