для
всех функций и переменных, являющийся частью их внешнего интерфейса. Libpng
поддерживает внешние идентификаторы, такие как:
png_create_write_struct
png_get_signature
png_read_row
png_set_invalid
Это дает обоснованную гарантию того, что идентификаторы будут
уникальны и таким образом
могут быть использованы в больших программах без опасения коллизии имен идентификаторов.
К недостаткам эмуляции пространств имён можно отнести:
Отсутствие нормального учёта вложенных пространств; идентификаторы становятся
чересчур длинными.
Программисты или организации могут использовать резко несовместимые
соглашения о наименовании, тем самым потенциально провоцируя большую
запутанность.
Сложные операции или операции запроса над группами идентификаторов,
основанных на пространствах имён, в которых они объявлены, обрабатываются
слишком неоптимально или вообще невыполнимы.
Все вызовы идентификаторов должны на самом деле осуществлять с полным именем
пространств. Языки с непосредственной поддержкой пространств имён обычно
предоставляют программисту возможность предварительно объявлять, что они хотят
использовать некоторые (а то и все) идентификаторы в программе только из одного
пространства, которые они впоследствии могут использовать без указания
принадлежности к пространству.
1. PHP: Использование пространства имен: основы — Manual (http://php.net/manual/ru/lan
guage.namespaces.basics.php).
Дата обращения: 22 сентября 2016.
Архивировано (https://we
b.archive.org/web/20190131040051/http://php.net/manual/ru/language.namespaces.basics.php)
31 января 2019 года.
2. Packages (https://www.cs.northwestern.edu/academics/courses/325/readings/packages.ph
p)
(англ.)
. www.cs.northwestern.edu.
Дата обращения: 23 декабря 2018.
Архивировано (https://w
eb.archive.org/web/20181224023644/https://www.cs.northwestern.edu/academics/courses/325/reading
s/packages.php) 24 декабря 2018 года.
3. Source Code Organisation (https://lispmethods.com/libraries.html#examples).
lispmethods.com.
Дата обращения: 23 декабря 2018.
Архивировано (https://web.archive.org/web/
20190316190436/https://lispmethods.com/libraries.html#examples) 16 марта 2019 года.
4. Hierarchical Packages (https://franz.com/support/tech_corner/hierpackuser.lhtml)
(англ.)
.
franz.com.
Дата обращения: 10 июня 2017.
Архивировано (https://web.archive.org/web/201812240
23720/https://franz.com/support/tech_corner/hierpackuser.lhtml) 24 декабря 2018 года.
5. CLHS: Macro DEFPACKAGE (http://www.lispworks.com/documentation/HyperSpec/Body/m
_defpkg.htm#defpackage). www.lispworks.com.
Дата обращения: 10 июня 2017.
Архивировано
(https://web.archive.org/web/20190201115350/http://www.lispworks.com/documentation/HyperSpec/Bo
dy/m_defpkg.htm#defpackage) 1 февраля 2019 года.
Источник — https://ru.wikipedia.org/w/index.php?title=Пространство_имён_(программирование)&oldid=121427673
Эта страница в последний раз была отредактирована 14 апреля 2022 в 23:05.
Примечания