Опрос
Что такое, по вашему мнению, «демократия»?
Автоматическое определение типов переменных
| Индекс материала |
|---|
| Автоматическое определение типов переменных |
| Страница 2 |
В отличие от более строгих языков программирования, MEL не требует указания типа переменной при описании. Он определяет его по значению, которое ей присваивается. $rad =2.1; Так как значение 2.1 может быть представлено только как число с плавающей запятой, переменной $rad будет назначен тип float. Отсюда понятно, насколько важно знать принципы, по которым Maya различает переменные разных типов. Возьмем следующий пример: $а = 2; $Ь = 2.0; Даже притом что оба эти значения могут храниться как целые числа, равные 2, переменная $Ь получит тип float, поскольку второе значение имеет вид 2.0. Такое автоматическое распознавание может привести к некоторым малозаметным ошибкам в ваших сценариях. Если вы работаете с прямоугольным объектом, а именно его точкой (3.43, 0, 0), то выполнение следующих операторов приводит к неожиданному результату. $i = 5; $i = 'getAttr box.
translateX'; print $1; // Результат: З Несмотря на то что полученный результат равен 3, правильное значение координаты объекта по оси х составляет 3.43. Есть две пр:ячины, по которым результат стал именно таким. После создания переменной $1 ей было присвоено значение 5. Поскольку вы не указали явным образом тип этой переменной, Maya предположила, что это - целое число, коль скоро значение 5, очевидно, целое. В следующем операторе вы запрашиваете значение координаты объекта по оси х. Maya возвращает корректное значение 3.43, однако оно-сохраняется в целочисленной переменной $i. Учитывая, что переменная $i является целой, в ней нельзя сохранить все десятичные цифры, а только целую часть. Поэтому, в конечном итоге.
$i принимает значение 3. На самом деле, переменная $1 должна была получить тип float, с тем чтобы она могла хранить все десятичные цифры координаты по оси х. Общее правило гласит: тип переменной лучше всего явно указывать при ее описании. Это служит гарантией того, что вы не зависите от Maya, которая автоматически определяет тип переменной. Предыдущие операторы теперь следует читать так: float $i = 5; $i = 'getAttr box. translateX'; print $1; // Результат 3.43 Так как это может привести к некоторому замешательству и трудно находимым ошибкам, тип переменной лучше всего явно указывать при ее описании Следующие примеры иллюстрируют сказанное. float $а = 34;//присвоить значение 34.0 int $b =2.3; //присвоитьзначение2 Коль скоро переменная типа float может содержать любое вещественное число, включая его дробную часть, она без проблем принимает значение 34.
С другой стороны, переменная типа int не может принять значение с десятичными цифрами после запятой. Тип int может хранить лишь целую часть числа, поэтому . 3 отбрасывается, остается лишь значение 2. Как только тип переменной - явно или неявно - установлен, его уже нельзя изменить. В следующем примере переменная $а неявно приобретает тип float в результате присваивания ей значения 2.3. С этого момента в $а можно хранить только данные этого типа. Если вы присвоите ей значение, тип которого отличен от float, Maya попытается привести его к вещественному типу.
Присваивание переменной $а значения типа string сбрасывает переменную в 0, так как осмысленное преобразование string в значение float невозможно. К счастью, Maya предупреждает о подобных преобразованиях. $а = 2.3; // $а неявно принимает тип float $а = "notes"; // попытка превратить $а в строку // Warning: $a = "notes"; // // Warning; Line 3.13 : Converting string "notes" to a float value of 0.// // Предупреждение: Строка 3.13 : Преобразование строки "notes" в значение О типа float.// Важно понимать, какие возможные значения могут принять переменные каждого типа. Общее правило гласит: для хранения всех чисел должны применяться значения вещественного типа, поскольку это именно тот формат, который обычно использует Maya. Для подсчета количества или организации циклов по спискам можно воспользоваться типом int.
Поиск
В закладку
Авторизация
Погода


