Курс Raku / Розширені / Контейнери / Спеціальні та динамічні змінні 🆕

Твігіли

Твіґіл — це символ, поставлений між сигілом та іменем змінної. Він не змінює імені; він змінює те, як змінна поводиться і як її розв’язують. Найпоширеніші такі:

  • *динамічна змінна, наприклад $*OUT, яку шукають через стек викликів
  • ?компіляційне значення, надане компілятором, наприклад $?FILE, $?LINE
  • !приватний атрибут об’єкта, наприклад $!balance
  • . — атрибут, до якого дістаються через його метод доступу, наприклад $.name

З кількома з них ви вже стикалися, не називаючи твіґіла: $*OUT та $*IN (динамічні) і $!/$. у частині про об’єкти.

Змінні з ?, надані компілятором, заповнюються під час компіляції вашої програми:

say $?LINE; # номер рядка цього оператора
say $?FILE; # шлях до цього файлу з вихідним кодом

Кожен твіґіл із першого погляду сигналізує про інший різновид змінної, тож, читаючи $*foo, ви одразу знаєте, що вона динамічна, а $?foo — що це компіляційна стала. Наступна тема детально розглядає динамічні змінні, бо вони поводяться зовсім не так, як лексичні змінні, якими ви користувалися досі.

Практика

Виконайте 1 тест за змістом цієї теми.

Навігація курсом

Спеціальні та динамічні змінні 🆕   |   Тест — Твігіли


💪 Або перейдіть одразу до вправ цього розділу.