Опрос
Что такое, по вашему мнению, «демократия»?
Конфликты
| Индекс материала |
|---|
| Конфликты |
| Страница 2 |
| Страница 3 |
| Страница 4 |
Все глобальные переменные существуют в едином пространстве (единой области видимости), поэтому не исключено, что два пользователя по незнанию применяют для обозначения своих глобальных переменных одно и то же имя. Первый из них пользуется этим именем в своих сцег;ариях, второй - в своих. И ни один из них не знает о том, что теперь эта переменная может изменяться за пределами его сценария. Один пользователь может установить одно значение этой переменной, а затем второй может установить другое.
Первый пользователь предполагает, что переменная содержит именно его значение, хотя это уже не так. Легко понять те проблемы, которые влечет за собой активность двух пользователей, изменяющих значение одной и той же переменной. Пользуясь командой env, вы можете получить список всех глобальных переменных, известных системе в настоящий момент. Даже если вашей переменной нет в этом списке, это не означает, что конфликт не возникнет позже.
Если другой пользователь загрузит сценарий, содержащий глобальную переменную с тем лее именем, конфликт все же случится. Лучшим решением, предотвращающим любые конфликты, является обеспечение уникальности имен переменных. В компании Alias Wavefront программисты присоединяют к началу всех глобальных переменных строчную букву g. Например: $gScalel_imits Поэтому, давая имя своей переменной, стоит воздержаться от такого соглашения об именах. Лучше предпослать каждому имени два или три символа, являющиеся уникальными для вас, вашей компании или вашего проекта. К примеру, все имена, которые входят в ваш код, разработанный для проектов по программированию Maya, вы можете начинать с тр: global string $mpUserName; Нельзя гарантировать что кто-нибудь другой не воспользуется тем же именем, однако подобный подход должен существенно сократить вероятность такого события.
Как только глобальная переменная описана, ее уже нельзя удалить. Причина этого заключается в том, что от существующей переменной может зависеть какой-то другой сценарий. Поэтому все глобальные переменные, описанные в ходе сеанса работы с Maya, остаются в памяти до его окончания. Если вы хотите удалить некоторые глобальные переменные, то единственный способ сделать это выйти из Maya и запустить пакет снова. Ранее было указано, что для получения перечня всех текущих глобальных переменных предназначена команда env. Чтобы проверить, обозначает ли данное имя существующую глобальную переменную, воспользуйтесь следующей процедурой, global proc int isGlobal( string $varName ) string $vars[] = 'env'; for( $var in $vars ) if( $var == $varName ) return yes; return no; Эту процедуру можно использовать так: if( isGlobal( "$myGlobal" ) ) ...
Поиск
В закладку
Авторизация
Погода


