M Mobile Shell:Reference:Language:Variables

Материал из mShellWiki
Перейти к: навигация, поиск

Переменные (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

Наши друзья
Личные инструменты