Массив (тип данных)
- 1 year ago
- 0
- 0
Запись — агрегатный тип данных , инкапсулирующий без сокрытия набор значений различных типов .
Применяется во многих языках программирования . В одних языках (например, в Паскале ) порядок размещения значений в памяти задаётся при определении типа и сохраняется на протяжении времени жизни объектов, что даёт возможность косвенного доступа (например, через указатели ); в других языках (например, в ML ) порядок размещения не определён, так что доступ к значениям возможен только по квалифицированному идентификатору. В некоторых языках, хотя порядок следования и сохраняется, но выравнивание контролируется компилятором, так что использование адресной арифметики может оказаться платформенно-зависимым. Некоторые языки позволяют присваивание между экземплярами разных записей, игнорируя различия в идентификаторах компонентов записей, и основываясь только на порядке следования. Другие языки, напротив, учитывают только совпадение имён, разрешая различия в порядке их определения.
Впервые записи были представлены в языке Кобол , где они имели довольно сложную нотацию. При проверке согласования типов Кобол учитывает только совпадение имён полей записей и не учитывает совпадение порядка их следования.
Кортежи служат формальным обоснованием записей в теории типов . В то же время, в языках кортежи временами могут реализовываться посредством записей, использующих в качестве идентификаторов индексные номера полей в получаемом кортеже. Более точной теоретической моделью записей является (расширение Системы F понятием ). Компонентами записей могут быть функции первого класса , что позволяет реализовывать основные концепции объектно-ориентированного программирования . Имеются практические воплощения этой модели . С другой стороны, классы в объектно-ориентированном программировании естественным образом представляются в виде записей, содержащих поля-данные, которым дополнительно назначен атрибут видимости , сопровождаемых полями-методами, ориентированными на обработку этих записей. Например, именно таким образом классы воплощены в языке C++ .
Для улучшения этой статьи
желательно
:
|