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



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

>

rdf:about=
"#JW"
>
… 
PHP
namespace
my\name; 
// определим новое пространство имён
class
MyClass
{} 
function
myfunction
() {} 
const
MYCONST
=
1

$a
=
new
MyClass; 
// вызов внутри пространства my\name
$c
=
new
\my\name\MyClass; 
// используем полное имя, включающее название пространства имён
$d
=
new
\globalClass; 
// обращение к классу из глобального пространства имён
?>
Common Lisp
PureBasic


В PureBasic 5.20, была введена поддержка пространства имён, реализованная в виде модулей.
Пространство имён определяется блоком команд Module и EndModule и не зависит от
расположения в исходных файлах. Это значит что в одном файле, могут быть несколько модулей,
или наоборот — код модуля может быть разделен на несколько файлов. По умолчанию, все
пространство модуля скрыто и чтобы сделать видимым отдельные его элементы, их необходимо
объявить в специальном блоке команд DeclareModule / EndDeclareModule. Все что не объявлено в
этом блоке, не доступно вне пределов модуля, и попытка доступа приведет к сообщению
компилятора о нарушении прав доступа.
Для доступа элементам модуля из другого модуля или глобального пространства, необходимо
указать имя модуля и его элемент, например: Count::x. Так же можно использовать команду
UseModule, которая позволяет отобразить все видимые элементы модуля в текущее пространство.
Её действие отменяет команда UnuseModule. Нужно отметить что одновременно возможно
отобразить видимые элементы нескольких модулей, при условии что при этом не возникнет
конфликта имен. Допустим что в проекте есть модули с именами x, y и z.
Этот пример показывает что возможно отобразить в текущее пространство несколько модулей, а
также то, что не важна последовательность отображения элементов модулей и его отмены.
В языках программирования без собственной поддержки пространств имён пространства могут
эмулироваться расширением, используя соглашения о наименовании идентификаторов.
Например, библиотеки языка Си, такие как Libpng, часто используют фиксированный префикс
DeclareModule
Count
x
=
0
; Public elements
Declare
Counter
() 
EndDeclareModule
Module
Count
y
=
0
; Private elements
Procedure
Counter
() 
y
+
1
ProcedureReturn
y
EndProcedure
EndModule
Count:
:
x

10
; Запись числа в переменную (для примера).
Debug
Count
::
Counter
() 
; Вызов процедуры используя имя модуля.
UseModule
Count
; Отображение модуля в текущее пространство.
Debug
Counter
() 
; Доступ к открытым (Public) элементам без указания имени модуля.
UnuseModule
Count
; Отмена действия UseModule.
UseModule
x
UseModule
y
; Код.
UseModule
z
; Еще код.
UnuseModule
y
; Еще код.
UnuseModule
x
UnuseModule
z

Download 0,93 Mb.

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




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©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