Разделы

2.8.1. Пространства имен

Пространством имен является таблица. Таблица в свою очередь может быть контекстом, который не доступен для управления скриптеру, и значением, которым может манипулировать скриптер.

Изначально в s4g существует 2 пространства имен: языковое (нулевое), и глобальное (первое).

Языковое пространство имен содержит стандартную библиотеку с данными (функции и значения) и доступно из любого контекста непосредственно. Также в это пространство имен на стороне хост программы (управляющего скриптовой системой приложения) можно экспортировать необходимый функционал.

Глобальное пространство имен, доступно из любого участка кода (в не зависимости от контекста исполнения) через таблицу _g (по умолчанию), это значение определено в дефайне S4G_GLOBAL_NM в файле s4g.h. Пример:

_g.$a = 10;

Глобальное пространство имен доступно непосредственно в глобальном контексте исполнения (в данном случае это одинаковые понятия). Вышеприведенный пример аналогичен:

$a = 10;

Глобальное пространство имен доступно из локальных контекстов только посредством таблицы _g. Пример:

$a = 10;
if(a > 0)
{
    _g.a = 11;
}

В случае попытки переопределения языковых функций/данных произойдет ошибка.