Доступ к свойствам символа
Следующие функции могут использоваться для доступа к свойствам символа.
- Функция: 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