Переменные (en)
[править заголовок, править ссылку на оригинал, править текст, править список подразделов, править список разделов]
Переменная — это область памяти, обозначенная именем. Значения могут быть связаны с переменными (сохранены в переменных), и значение может быть позже получено по имени переменной.
Идентификаторы переменных (и функций, и классов, и модулей) — это последовательности обычных латинских букв, цифр и символа подчеркивания.
- Идентификаторы не должны начинаться с цифры.
- Идентификаторы чувствительны к регистру, т.е. строчные и прописные варианты различаются.
- Ключевые слова (см. приложение Зарезервированные слова (en)) не могут быть использованы как идентификаторы.
- Максимальная длина идентификатора составляет 64 символа.
Примеры корректных мдентификаторов:
a
Z
AvogadroConstant
avogadro_constant
_4
x1
Примеры некорректных идентификаторов:
9a // начинается с цифры
end // ключевое слово
This_identifier_is_too_long_to_be_accepted_as_it_is_over_64_chars // длиннее, чем 64 символа
EBNF
| __
|
IdentifierChar = 'A' to 'Z' | 'a' to 'z' | '_' .
Identifier = IdentifierChar {IdentifierChar | Digit} .
|
Есть три разных типа переменных:
- Глобальные переменные, принадлежащие модулю (см. раздел Модули (en)) и существуют в течение всего процесса, включающего модуль. Глобальные переменные могут быть созданы только в модуле, в котором объявлены.
- Локальные переменные принадлежат функциям (см. раздел Функции (en)) и на них можно ссылаться только внутри соответствующих функций. Они отличаются от глобальных переменных с теми же именами и существуют в течение работы функции: они создаются когда функция вызывается и уничтожаются когда функция завершается. Следовательно, каждый вызов рекурсивной функции создает свое множество локальных переменных. Параметры функции также являются переменными.
- Поля класса принадлежат экземпляру класса (см. раздел Объектно-ориентированное программирование (en)) и существуют пока существует экземпляр класса. Поля класса объявляются при объявлении класса и создаются когда создается экземпляр класса. Они отличаются от глобальных и локальных переменных с теми же именами.
Различие между обращениями к глобальным и локальным переменным в коде создается с помощью префикса модуля. См. раздел Модули (en) с примерами и пояснением.
EBNF
| __
|
ModulePrefix = [ModuleName | '.'] '.' .
Variable = [ModulePrefix] Identifier .
ModuleName = Identifier .
|
© 2004-2009 airbit AG, CH-8008 Zürich
перевод от m-shell.ru
|