Spec-Zone.ru › Elisp

Доступ к свойствам символа

Следующие функции могут использоваться для доступа к свойствам символа.

Функция: get свойство символа

Эта функция возвращает значение свойства с именем property в списке свойств symbol. Если такого свойства нет, она возвращает nil. Таким образом, нет различия между значением nil и отсутствием свойства.

Имя property сравнивается с именами существующих свойств с помощью eq, поэтому любой объект является допустимым свойством.

См. put для примера.

Функция: put значение свойства символа

Эта функция помещает value в список свойств symbol под именем свойства property, заменяя любое предыдущее значение свойства. Функция put возвращает value.

(put 'fly 'verb 'transitive)
     ⇒'transitive
(put 'fly 'noun '(a buzzing little bug))
     ⇒ (a buzzing little bug)
(get 'fly 'verb)
     ⇒ transitive
(symbol-plist 'fly)
     ⇒ (verb transitive noun (a buzzing little bug))
Функция: symbol-plist символ

Эта функция возвращает список свойств symbol.

Функция: setplist символ plist

Эта функция устанавливает список свойств symbol в plist. Обычно plist должен быть правильно сформированным списком свойств, но это не проверяется. Возвращаемое значение — plist.

(setplist 'foo '(a 1 b (2 3) c nil))
     ⇒ (a 1 b (2 3) c nil)
(symbol-plist 'foo)
     ⇒ (a 1 b (2 3) c nil)

Для символов в специальных obarray, которые не используются для обычных целей, может иметь смысл использовать ячейку списка свойств нестандартным способом; на самом деле механизм abbrev делает это (см. Сокращения).

Можно определить put в терминах setplist и plist-put, следующим образом:

(defun put (symbol prop value)
  (setplist symbol
            (plist-put (symbol-plist symbol) prop value)))
Функция: function-get символ свойство &optional autoload

Эта функция идентична get, за исключением того, что если symbol является именем псевдонима функции, она ищет в списке свойств символа, обозначающего фактическую функцию. См. Определение функций. Если необязательный аргумент autoload не равен nil, и symbol загружается автоматически, эта функция попытается загрузить его автоматически, так как автоматическая загрузка может установить property для symbol. Если autoload — символ macro, попытаться загрузить автоматически только если symbol является загружаемой автоматически макросом.

Функция: function-put функция свойство значение

Эта функция устанавливает property функции function в значение value. function должен быть символом. Эта функция предпочтительнее вызова put для установки свойств функции, потому что она позволит нам в будущем реализовать переназначение старых свойств на новые.

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/Symbol-Plists.html

Spec-Zone.ru

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