Spec-Zone.ru › Elisp

Переменные с ограниченными значениями

Обычные переменные Lisp могут принимать любое значение, являющееся допустимым объектом Lisp. Однако некоторые переменные Lisp определены не в Lisp, а в C. Большинство из этих переменных определены в коде C с помощью DEFVAR_LISP. Как и переменные, определенные в Lisp, они могут принимать любое значение. Однако некоторые переменные определены с помощью DEFVAR_INT или DEFVAR_BOOL. См. Написание примитивов Emacs, в частности описание функций типа syms_of_filename, для краткого обсуждения реализации на C.

Переменные типа DEFVAR_BOOL могут принимать только значения nil или t. Попытка присвоить им любое другое значение приведет к их установке в значение t:

(let ((display-hourglass 5))
  display-hourglass)
     ⇒ t
Переменная: byte-boolean-vars

Эта переменная содержит список всех переменных типа DEFVAR_BOOL.

Переменные типа DEFVAR_INT могут принимать только целочисленные значения. Попытка присвоить им любое другое значение приведет к ошибке:

(setq undo-limit 1000.0)
error→ Wrong type argument: integerp, 1000.0

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/Variables-with-Restricted-Values.html

Spec-Zone.ru

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