Пространство имен является контейнером, который обеспечивает контекст для идентификаторов, в которых имена уникальны.
Пространство имен является контейнером, который обеспечивает контекст для идентификаторов, в которых имена уникальны. Во многих реализациях идентификаторы могут быть сняты неоднозначность между пространствами имен путем предварительного ожидания идентификатора с пространством имен, разделенным разделителем, такими как период (.
) в Java и c#, двойное двоеточие (::
) в C++ или обратной косой черте (\
) в php-5.3.
Для многих языков программирования пространство имен является контекстом для их идентификаторов. В операционной системе примером пространства имен является каталог. Каждое имя в каталоге однозначно определяет один файл или подкаталог, но один файл может иметь то же имя многократно.
Как правило, имена в пространстве имен не могут иметь больше чем одного значения; то есть, различные значения не могут совместно использовать то же имя в том же пространстве имен. Пространство имен также называют контекстом, потому что то же имя в различных пространствах имен может иметь различные значения, каждый подходящий для его пространства имен.
Следующее является другими характеристиками пространств имен:
Пространства имен были введены в 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.
В Python пространства имен определяются отдельными модулями, и так как модули могут содержаться в иерархических пакетах, затем пространства имен являются иерархическими также. В целом, когда модуль импортируется затем, имена, определенные в модуле, определяются через пространство имен того модуля и получены доступ в от модулей вызова при помощи полностью определенного имени.
Все классы Платформы.NET организованы в пространствах имен. При ссылке на класс нужно указать любое его полностью определенное имя, что означает пространство имен, сопровождаемое именем класса,
В C++ пространство имен определяется с блоком пространства имен.
namespace abc { int bar; }