Курс языка программирования Raku / Продвинутый уровень / Модули / Пакеты и пространства имён / Exercises / Переменная our

Решение: Переменная our

Вот возможное решение задачи.

Код

package Config {
    our $port = 8080;
    my  $secret = 42;
}

say $Config::port;
say $Config::secret.defined;

🦋 Исходный код можно найти в файле our-variable.raku.

Вывод

8080
False

Комментарии

  1. our $port становится частью пространства имён Config, поэтому доступна извне как $Config::port, выводя 8080.

  2. my $secret является лексической — приватной для блока пакета, — поэтому она не находится в пространстве имён. Путь $Config::secret ничего не находит — неопределённое значение, — поэтому .defined возвращает False. В этом и заключается разница, которую вносит our.

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

Переменная our   |   Пакет