Курс языка программирования Raku / Продвинутый уровень / Контейнеры
Интроспекция с помощью МОП
Интроспекция — это когда у значения или контейнера
запрашивается информация о нём самом: его тип, его контейнер и
внутреннее устройство. Вы уже использовали один инструмент интроспекции
— .^name — для вывода типа значения.
Raku предлагает небольшое семейство таких инструментов, записываемых
заглавными буквами: WHAT, VAR,
WHO и HOW. Их иногда называют
псевдо-методами, потому что компилятор придаёт им особое
значение, а не обрабатывает как обычные методы. В этом разделе
рассматривается каждый из них.
Для напоминания, вот .^name, показывающий, как тип
нетипизированного контейнера меняется при сохранении различных
значений:
my $value;
say $value.^name; # Any
$value = 42;
say $value.^name; # Int
$value = 'forty-two';
say $value.^name; # StrКонтейнер начинает как Any, а затем показывает тип
хранимого в данный момент значения.
Темы этого раздела
Практика
Пройдите 1 тест по содержанию этого раздела.
Упражнения
В этом разделе 3 упражнения. Прежде чем приступать к практике, изучите все темы раздела.