Spec-Zone.ru › Elisp

Переменные, которые никогда не меняются

В Emacs Lisp определенные символы обычно вычисляются сами по себе. К ним относятся nil и t, а также любые символы, имя которых начинается с ‘:’ (они называются ключами). Эти символы нельзя переназначить, и их значения нельзя изменить. Любая попытка установить или связать nil или t сигнализирует об ошибке setting-constant. То же самое верно для ключа (символа, имя которого начинается с ‘:’), если он интернирован в стандартном массиве obarray, за исключением того, что установка такого символа в себя не является ошибкой.

nil ≡ 'nil
     ⇒ nil
(setq nil 500)
error→ Attempt to set constant symbol: nil
Функция: keywordp объект

функция возвращает t, если объект является символом, имя которого начинается с ‘:’, интернированным в стандартном массиве obarray, и возвращает nil в противном случае.

Эти константы фундаментально отличаются от констант, определенных с помощью специальной формы defconst (см. Определение переменных). Форма defconst служит для информирования читателей, что вы не намерены изменять значение переменной, но Emacs не генерирует ошибку, если вы фактически ее измените.

Небольшое количество дополнительных символов сделано неизменяемыми по различным практическим причинам. К ним относятся enable-multibyte-characters, most-positive-fixnum, most-negative-fixnum, и несколько других. Любая попытка установить или связать их также сигнализирует об ошибке setting-constant.

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/Constant-Variables.html

Spec-Zone.ru

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