Опрос
Что такое, по вашему мнению, «демократия»?
Глобальные и локальные переменные
| Индекс материала |
|---|
| Глобальные и локальные переменные |
| Страница 2 |
Переменные $а и $Ь считаются локальными переменными соответствующих блоков. Статус локальной переменной означает, что она доступна только в пределах своего блока и любого внутреннего блока, который может в нем находиться. Иногда возникает желание создать переменную, которая могла бы использоваться и другими блоками, описанными снаружи. К примеру, вы хотите запомнить имя текущего пользователя и сделать его доступным во всех своих сценариях. Именно для этой цели создана специальная область видимости - глобальная. Когда переменная описана как глобальная, она доступна в любое время и в любом месте среды Maya. Описание глобальной переменной подразумевает ее размещение в самой внешней области видимости (вне каких-либо скобок) и использование ключевого слова global.
global string ScurrentUserName; Чтобы получить доступ к глобальной переменной из блока, вам нужно сообщить MEL о том, что вы хотите к ней обратиться. global string $currentUserName; global string $currentUserName; $currentUserNaine = "John Doe"; Что произойдет, если вы не сообщите явно о своем намерении воспользо ваться глобальной переменной? global string $currentUserName; $currentUserName = "John Doe"; MEL создаст внутри блока новую локальную переменную с именем $си ггепtUserName, и она будет использоваться вместо глобальной. Если же вы явно сообщите о намерении сослаться на глобальную переменную, MEL будет знать о том, какой переменной вы хотите воспользоваться. Применение локальной переменной предполагается всякий раз, когда иное не ук;1зано явно. Инициализация глобальных переменных Важно понимать то, как происходит инициализация глобальных переменных.
Как и все переменные, они принимают значение по умолчанию, если вы не инициализировали их явно. Так как следующая переменная $depth имеет тип int, она принимает начальное значение 0. global int $depth; Кроме того, можно указать и явное значение переменной. Явное присваивание начальных значений переменных всегда предпочтительно.
Такая практика делает непосредственно очевидным то, какое значение должна иметь переменная. global int $depth = 3; Важно знать и о том, что глобальные переменные инициализируются только один раз. Это происходит в тот момент, когда при компиляции MEL впервые встречает соответствующий оператор (все подробности компиляции сценариев изложены в разделе 3.3.4). По завершении компиляции все операторы, устанавливающие начальные значения глобальных переменных, игнорируются. ргос до() I global int $depth = 3; print (" " + $depth); fcdepth = 1; print (" " + $depth); go(); go(); На экран будет выведено следующее: 3 1 1 1 При первом вызове процедуры до ее требовалось скомпилировать, так что глобальная переменная $depth получила начальное значение 3. Когда процедура до вызывается еще раз, она уже находится в памяти и не нуждается в компиляции. Происходит обычный вызов. На сей раз используется текущее значение переменной $depth.
Поиск
В закладку
Авторизация
Погода


