Курс языка программирования Raku / Продвинутый уровень / Контейнеры / Интроспекция с помощью МОП / Exercises / Что это такое
Решение: Что это такое
Вот возможное решение задачи.
Код
my $a = 42;
my $b = 'x';
say $a.WHAT === Int;
say $b.WHAT === Int;🦋 Исходный код можно найти в файле what-is-it.raku.
Вывод
True
FalseКомментарии
$a.WHAT— это не строкаInt, а настоящий объект типаInt, поэтому=== Intсравнивает его с самим типом и возвращаетTrue.$bсодержит строку, поэтому егоWHAT— этоStr; сравнение сIntдаётFalse. Именно это делаетWHATполезным в условиях, а не только при выводе.