Курс языка программирования Raku / Продвинутый уровень / Контейнеры / Специальные и динамические переменные

Твигилы

Твигил — это символ, размещаемый между сигилом и именем переменной. Он не меняет имя, но меняет то, как переменная ведёт себя и как она разрешается. Наиболее распространённые твигилы:

  • *динамическая переменная, например $*OUT, ищется по стеку вызовов
  • ? — значение времени компиляции, предоставленное компилятором, например $?FILE, $?LINE
  • !приватный атрибут объекта, например $!balance
  • . — атрибут, доступный через метод-аксессор, например $.name

Вы уже встречали несколько из них, не называя твигилом: $*OUT и $*IN (динамические), а также $!/$. в части об объектах.

Переменные компилятора с твигилом ? заполняются на этапе компиляции вашей программы:

say $?LINE; # the line number of this statement
say $?FILE; # the path of this source file

Каждый твигил обозначает определённый вид переменной с первого взгляда: увидев $*foo, вы сразу понимаете, что это динамическая переменная, а $?foo — что это константа времени компиляции. Следующая тема подробно рассматривает динамические переменные, поскольку они ведут себя совершенно иначе, чем лексические переменные, которые вы использовали до сих пор.

Практика

Пройдите 1 тест по содержанию этой темы.

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

Специальные и динамические переменные   |   Тест — Твигилы


💪 Или перейдите сразу к упражнениям этого раздела.