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

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

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

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

Следующее является другими характеристиками пространств имен:

  • Имена в пространстве имен могут представить объекты, а также понятия, быть пространством имен естественный или этнический язык, сконструированный язык, техническая терминология профессии, диалекта, sociolect или искусственного языка (например, язык программирования).
  • На языке программирования 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

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

C++

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

namespace abc { int bar; }