AngelScript Help

namespace

https://www.angelcode.com/angelscript/sdk/docs/manual/doc_global_namespace.html

Пространство имён — механизм, который позволяет организовать код в логические группы. Позволяет избежать конфликтов имён при разрастании кодовой базы, особенно при использовании внешних зависимостей.

Для доступа к объектам внутри пространства имён используется оператор :::

string A = "A"; namespace N { string A = "NA"; } void [[[main|main.html]]](){ print(A + N::A); //ANA }

Оператор :: можно опустить, если объекты находятся в одном пространстве имён:

namespace N { string A = "A"; string B = A + "B"; } void [[[main|main.html]]](){ print(N::A); //AB }

Глобальное пространство имён

Доступ к любому объекту в глобальной области видимости можно получить с помощью оператора :: без указания имени пространства имён:

string A = "A"; namespace N { string A = "NA"; string B = ::A + A; } void [[[main|main.html]]](){ print(::A); // A print(::N::A); // NA print(N::B); //ANA }

Вложенные пространства имён

Пространства имён можно вкладывать друг в друга.

namespace NA { namespace NB { namespace NC { string A = "NC"; } } } void [[[main|main.html]]](){ print(NA::NB::NC::A); // NC }

Доступ из вложенного пространства имён к родительскому осуществляется через глобальное пространство имён:

namespace NA { namespace NB { string A = "NB"; namespace NC { string A = ::NA::NB::A + "NC"; } } } void [[[main|main.html]]](){ print(NA::NB::NC::A); // NBNC }

Множественное объявление

Пространства имён с одним именем допустимо объявлять неограниченное количество раз. Единственное условие — вложенные объекты не должны конфликтовать друг с другом.

namespace N { string A = "A"; } namespace N { string B = "B"; } namespace N { string C = A + B + "C"; // string A = "A"; // Ошибка! Переменная A уже объявлена. } void [[[main|main.html]]](){ print(N::C); // ABC }
Last modified: 25 December 2024