Курс 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