Spec-Zone.ru › Elisp

Функции для работы с массивами

В этом разделе описаны функции, принимающие массивы всех типов.

Функция: arrayp object

Эта функция возвращает t, если object является массивом (то есть вектором, строкой, булевым вектором или таблицей символов).

(arrayp [a])
     ⇒ t
(arrayp "asdf")
     ⇒ t
(arrayp (syntax-table))    ;; A char-table.
     ⇒ t
Функция: aref arr index

Эта функция возвращает элемент массива или записи arr с индексом index. Индекс первого элемента равен нулю.

(setq primes [2 3 5 7 11 13])
     ⇒ [2 3 5 7 11 13]
(aref primes 4)
     ⇒ 11
(aref "abcdefg" 1)
     ⇒ 98           ; ‘b’ is ASCII code 98.

См. также функцию elt в разделе Последовательности.

Функция: aset array index object

Эта функция устанавливает элемент array с индексом index равным object. Она возвращает object.

(setq w (vector 'foo 'bar 'baz))
     ⇒ [foo bar baz]
(aset w 0 'fu)
     ⇒ fu
w
     ⇒ [fu bar baz]
;; copy-sequence copies the string to be modified later.
(setq x (copy-sequence "asdfasfd"))
     ⇒ "asdfasfd"
(aset x 3 ?Z)
     ⇒ 90
x
     ⇒ "asdZasfd"

Массив array должен быть изменяемым. См. Изменяемость.

Если array — строка, а object не является символом, возникает ошибка wrong-type-argument. Подробнее об изменении строк см. в разделе Изменение строк.

Функция: fillarray array object

Эта функция заполняет массив array значением object, так что каждый элемент array равен object. Она возвращает array.

(setq a (copy-sequence [a b c d e f g]))
     ⇒ [a b c d e f g]
(fillarray a 0)
     ⇒ [0 0 0 0 0 0 0]
a
     ⇒ [0 0 0 0 0 0 0]
(setq s (copy-sequence "When in the course"))
     ⇒ "When in the course"
(fillarray s ?-)
     ⇒ "------------------"

Если array — строка, а object не является символом, возникает ошибка wrong-type-argument.

Общие функции для работы с последовательностями copy-sequence и length часто полезны для объектов, которые заведомо являются массивами. См. Последовательности.

Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Array-Functions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API