Описание тега 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;
}