Курс по 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 упражнения. Разгледайте всички теми в раздела, преди да се захванете с практиката.