Spec-Zone.ru › Elisp

Правила области действия для привязки переменных

При создании локальной привязки для переменной, эта привязка действует только в ограниченной части программы (см. Локальные переменные). В этом разделе описывается, что это означает.

Каждая локальная привязка имеет определённую область действия и срок действия. Область действия относится к тому месту в текстовом исходном коде, где привязка может быть обработана. Срок действия относится к времени, когда, в ходе выполнения программы, привязка существует.

По умолчанию, локальные привязки, которые создаёт Emacs, являются динамическими привязками. Такая привязка имеет динамическую область действия, что означает, что любая часть программы потенциально может получить доступ к привязке переменной. Она также имеет динамический срок действия, что означает, что привязка существует только во время выполнения конструкции привязки (например, тела let формы).

Emacs может по желанию создать лексические привязки. Лексическая привязка имеет лексическую область действия, что означает, что любая ссылка на переменную должна быть расположена текстово внутри конструкции привязки10. Она также имеет неопределённый срок действия, что означает, что в некоторых случаях привязка может сохраняться даже после завершения выполнения конструкции привязки, с помощью специальных объектов, называемых замыканиями.

В следующих подразделах более подробно описаны динамическая и лексическая привязки, а также способ включения лексической привязки в программы Emacs Lisp.

• Динамическая привязка По умолчанию для привязки локальных переменных в Emacs.
• Советы по динамической привязке Избегание проблем с динамической привязкой.
• Лексическая привязка Другой тип локальной привязки переменных.
• Использование лексической привязки Как включить лексическую привязку.
• Преобразование в лексическую привязку Преобразование существующего кода в лексическую привязку.

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/Variable-Scoping.html

Spec-Zone.ru

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