Описание тега namespaces

Пространство имен - это контейнер, который обеспечивает контекст для идентификаторов, в которых имена уникальны.

Пространство имен - это контейнер, который обеспечивает контекст для идентификаторов, в которых имена уникальны. Во многих реализациях идентификаторы можно устранить неоднозначность между пространствами имен, добавив к идентификатору пространство имен, разделенное разделителем, например точкой (.) в java и C# двойное двоеточие (::) в C++ или обратная косая черта (\) в php-5.3.

Для многих языков программирования пространство имен является контекстом для их идентификаторов. В операционной системе примером пространства имен является каталог. Каждое имя в каталоге однозначно определяет один файл или подкаталог, но один файл может иметь одно и то же имя несколько раз.

Как правило, имена в пространстве имен не могут иметь более одного значения; то есть разные значения не могут иметь одно и то же имя в одном пространстве имен. Пространство имен также называется контекстом, потому что одно и то же имя в разных пространствах имен может иметь разные значения, каждое из которых соответствует своему пространству имен.

Ниже приведены другие характеристики пространств имен:

  • Имена в пространстве имен могут представлять объекты, а также концепции, быть пространством имен естественным или этническим языком, искусственным языком, технической терминологией профессии, диалектом, социалектом или искусственным языком (например, языком программирования).
  • В языке программирования Java идентификаторы, которые появляются в пространствах имен, имеют короткое (локальное) имя и уникальное длинное "квалифицированное" имя для использования вне пространства имен.
  • Некоторые компиляторы (для таких языков, как C++) объединяют пространства имен и имена для внутреннего использования в компиляторе в процессе, называемом искажением имен.

PHP

Пространства имен были введены в PHP начиная с версии 5.3. В PHP пространство имен определяется с помощью блока пространства имен.

namespace phpstar {
    class fooBar {
        public function foo() {
            echo 'hello world, from function foo';
        }

        public function bar() {
            echo 'hello world, from function bar';
        }
    }
}

XML

В XML спецификация пространства имен XML позволяет именам элементов и атрибутов в документе XML быть уникальными. Используя пространства имен XML, документы XML могут содержать имена элементов или атрибутов из более чем одного словаря XML.

Python

В Python пространства имен определяются отдельными модулями, и поскольку модули могут содержаться в иерархических пакетах, тогда пространства имен также являются иерархическими. В общем, когда модуль импортируется, имена, определенные в модуле, определяются через пространство имен этого модуля, и доступ к ним осуществляется из вызывающих модулей с использованием полного имени.

.СЕТЬ

Все классы.NET Framework организованы в пространствах имен. При ссылке на класс следует указать либо его полное имя, что означает пространство имен, за которым следует имя класса,

C++

В C++ пространство имен определяется с помощью блока пространства имен.

namespace abc {
    int bar;
}