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

  1. Опишете променлива
  2. Какво е това
  3. Стойност по подразбиране на контейнер

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

Решение: Тематичната променлива   |   Използване на WHAT