Курс языка программирования Raku / Продвинутый уровень / Контейнеры / Интроспекция с помощью МОП / Exercises / Что это такое

Решение: Что это такое

Вот возможное решение задачи.

Код

my $a = 42;
my $b = 'x';

say $a.WHAT === Int;
say $b.WHAT === Int;

🦋 Исходный код можно найти в файле what-is-it.raku.

Вывод

True
False

Комментарии

  1. $a.WHAT — это не строка Int, а настоящий объект типа Int, поэтому === Int сравнивает его с самим типом и возвращает True.

  2. $b содержит строку, поэтому его WHAT — это Str; сравнение с Int даёт False. Именно это делает WHAT полезным в условиях, а не только при выводе.

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

Что это такое   |   Значение по умолчанию контейнера