Курс языка программирования Raku / Продвинутый уровень / Контейнеры / Интроспекция с помощью МОП / Exercises / Описание переменной
Решение: Описание переменной
Вот возможное решение задачи.
Код
my Str $lang = 'Raku';
say $lang.^name;
say $lang.VAR.^name;
say $lang.VAR.name;🦋 Исходный код можно найти в файле describe-a-variable.raku.
Вывод
Str
Scalar
$langКомментарии
.^nameвозвращает тип значения, хранящегося в контейнере, —Str..VARвозвращает базовый контейнер, а.^nameна нём возвращаетScalar— тип самого контейнера..VAR.nameвозвращает имя переменной$lang, включая сигил. Обратите внимание, что это методname, а не мета-метод^name, использованный в двух предыдущих строках.