Пространство имён (программирование)


Границы Использование в языках



Download 0,93 Mb.
Pdf ko'rish
bet2/6
Sana15.06.2022
Hajmi0,93 Mb.
#673965
1   2   3   4   5   6
Bog'liq
Пространство имён (программирование)

Границы
Использование в языках
C++
Java
Область видимости
Содержание


C#
Python
JavaScript
XML
PHP
Common Lisp
PureBasic
Эмуляция пространств имён
Примечания
В языках программирования одним из способов задания границы пространства имен может быть
использование т. н. 
области видимости
.
Пространство имён определяется блоком инструкций:
Внутри этого блока идентификаторы могут вызываться именно так, как они были объявлены. Но
вне блока требуется указание имени пространства имён перед идентификатором. Например, вне
namespace foo
идентификатор 
bar
должен указываться как 
foo::bar
. C++ содержит
некоторые другие конструкции, делающие подобные требования необязательными. Так, при
добавлении строки
в код, указывать префикс 
foo::
больше не требуется. Ещё пример:
Границы
Использование в языках
C++
namespace
foo

int
bar; 

using
namespace
foo

namespace
Namespace12

int
foo
=0


void
func1() 

using
namespace
Namespace12

// теперь все имена из пространства имён Namespace12 будут видны здесь без дополнительных 
префиксов
++
foo; 

void
func2() 



Код, не объявленный явным образом в пространстве имён, подразумевается объявленным в
глобальном пространстве имён.
Разрешение пространств имён в C++ иерархично. Это означает, что в гипотетическом
пространстве имён 
еда::суп
, идентификатор 
курица
будет обозначать 
еда::суп::курица
(если пространство существует). Если не существует, то тогда он указывает на 
еда::курица
(если это пространство существует). Если и это пространство не существует, то 
курица
ссылается на идентификатор в глобальном пространстве.
Зачастую пространства имён в C++ используются для избежания коллизий имён
Нельзя осуществить доступ из одной единицы трансляции к члену анонимного пространства
имён из другой единицы.
Хотя пространства имён широко используются в современном коде, большая часть старого кода
не имеет подобных возможностей. Например, вся стандартная библиотека языка C++ определена
внутри 
namespace std
, но до стандартизации многие компоненты первоначально были
определены в глобальном пространстве.
Также можно сделать видимым не всё пространство, а отдельные имена внутри него, например:
Идея пространств имён воплощена в Java-пакетах. Весь код определён внутри пакета, причём
этот пакет не нуждается в явно заданном имени. Код из других пакетов доступен при
префиксном указании имени пакета перед соответствующим идентификатором, например, класс
String (https://docs.oracle.com/en/java/javase/11/docs/api/java.bas
e/java/lang/String.html)
в пакете 
java.lang (https://docs.oracle.com/e
n/java/javase/11/docs/api/java.base/java/lang/package-summary.html)
может быть вызван как 
java.lang.String
(данный способ известен как полное имя класса).
Как и в C++, Java предлагает конструкцию, делающую необязательным указание имя пакета
(
import
). Тем не менее, некоторые особенности (как, например, отражение) требуют от
программиста использования полного имени.
// а тут имя нужно уточнить:
Namespace12
::
foo
=
42



Download 0,93 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish