Тип массива
Массив состоит из произвольного количества ячеек для хранения или ссылки на другие объекты Lisp, расположенных в непрерывном блоке памяти. Доступ к любому элементу массива занимает примерно одинаковое время. В отличие от этого, доступ к элементу списка требует времени, пропорционального позиции элемента в списке. (Элементы в конце списка требуют больше времени для доступа, чем элементы в начале списка.)
Emacs определяет четыре типа массивов: строки, векторы, векторы булевых значений и таблицы символов.
Строка — это массив символов, а вектор — массив произвольных объектов. Вектор булевых значений может содержать только t или nil. Эти типы массивов могут иметь любую длину до максимального значения fixnum, с учетом ограничений архитектуры системы и доступной памяти. Таблицы символов — разреженные массивы, индексируемые любым допустимым кодом символа; они могут содержать произвольные объекты.
Первый элемент массива имеет индекс ноль, второй — индекс 1 и так далее. Это называется индексацией с нулевым началом. Например, массив из четырёх элементов имеет индексы 0, 1, 2 и 3. Наибольшее возможное значение индекса на единицу меньше длины массива. После создания массива его длина фиксируется.
Все массивы Emacs Lisp одномерны. (Большинство других языков программирования поддерживают многомерные массивы, но они не являются необходимыми; вы можете получить тот же эффект с вложенными одномерными массивами.) Каждый тип массива имеет свой синтаксис чтения; см. следующие разделы для получения подробностей.
Тип массива является подмножеством типа последовательности и включает в себя тип строки, тип вектора, тип вектора булевых значений и тип таблицы символов.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Array-Type.html