Пара «ключ-значение»
Пара «ключ-значение», также называемая парой «атрибут-значение», парой «имя-значение» или парой «поле-значение», является фундаментальным представлением данных в вычислительных системах и приложениях. Разработчики часто желают иметь открытую структуру данных, которая допускает расширение[англ.] без изменения существующего кода или данных. В таких ситуациях вся или часть модели данных может быть выражена как коллекция кортежей в форме <имя атрибута, значение>
, где каждый элемент является парой «атрибут-значение». В зависимости от конкретного приложения и реализации, выбранной программистами, имена атрибутов могут быть или не быть уникальными.
Примеры использования
правитьВот некоторые приложения, в которых информация представлена в виде пар «ключ-значение»:
- Электронная почта в заголовках RFC 2822[1],
- Строки запросов[англ.] в URL-адресе,
- Необязательные элементы в сетевых протоколах, таких как IP, где они часто появляются как тройки TLV (тип-длина-значение),
- Библиографическая информация, как в метаданных BibTeX и Dublin Core,
- Атрибуты элементов в SGML, HTML и XML,
- База данных «ключ — значение»,
- Картографические данные OpenStreetMap,
- Записи реестра Windows,
- Переменные среды.
Использование в компьютерных языках
правитьНекоторые компьютерные языки реализуют пары «ключ-значение» или, чаще, коллекции пар «атрибут-значение» как стандартные языковые возможности. Большинство из них реализуют общую модель ассоциативного массива: неупорядоченный список уникальных атрибутов с соответствующими значениями. В результате они не являются полностью общими; их нельзя использовать, например, для реализации заголовков электронной почты (которые упорядочены и не являются уникальными).
В некоторых приложениях пара «ключ — значение» имеет значение, которое содержит вложенную коллекцию пар "атрибут-значение". Некоторые форматы сериализации данных, такие как JSON, поддерживают произвольно глубокую вложенность[2]. Другие представления данных ограничены одним уровнем вложенности, например раздел/имя/значение INI-файла.
См. также
правитьПримечания
править- ↑ Peter W. Resnick Internet Message Format (англ.). tools.ietf.org. Дата обращения: 2 октября 2018.
- ↑ JSON Objects (англ.). www.w3schools.com. Дата обращения: 2 октября 2018.