Переменные, циклы и переходы в  MEL

После знакомства с основами  применения  MEL рассмотрим немного  подробнее, ка­ кие средства  предоставляет  язык для создания более сложных  сценариев.  Те, кто знаком с основами  программирования,  знают, что основой  программ является гибкость и  спо­ собность  выполнять повторяющиеся  задачи.  Гибкость достигается за  счет  применения переменных и  средств  перехода, а повторение обеспечивают циклы.

Переменные

Переменную (variable)  проще  продемонстрировать,  чем  долго  описывать  ее  назначе­ ние и суть. Введите  в редакторе сценариев следующее:


string

$myVariable;

$myVariable

=          "hi

there";

print

$myVariable;

ВЫПОЛНИВ ЭТИ команды, можно заметить, что фраза "hi there " отображается в по­

следней строке панели  истории.  Это означает, что команда отобразить содержимое  пере­ менной $myVariable привела к отображению фразы "hi there". Первая строка кода этого сценария называется объявлением (declaration) переменной: string — это тип пе­ ременной (т.е. строка, текст которой заключен в кавычки), a $myVariabl e — это имя пе­ ременной. Вторая строка сценария присваивает  переменной $myVariabl e строку  "hi there", третья строка содержит  команду print, выводящую содержимое  переменной

$myVariable на экран.

Тип ы  переменны х MEL  

Язык MEL поддерживает несколько типов переменных.

int (целое число). Используется для хранения целых чисел, таких как 3 или -45.

float (десятичное число). Используется  для вещественных  чисел, таких как -35 .4725. string (символьная  строка  в   кавычках).  Используется  для  хранения текста,   например "hello world".

vector (вектор). Три  десятичных  числа, которые составляют векторное число,  используе­ мое для описания точки в трехмерном пространстве, например (26, 31.67, 6 .724). Вектор­ ное число применяется  для хранения трехкомпонентной информации,  такой как позиция  (в координатах X, Y, Z), или цвета  (красный, зеленый, синий).

array (массив).  Список чисел, используемый  для хранения набора целых чисел,  десятич­ ных чисел, строк или  векторов. Массивы применяются  для хранения данных  многих подоб­ ных элементов,  например цветов каждой частицы в  группе частиц.

matrix (матрица). Двухмерный массив десятичных  чисел или  массив  массивов десятичных чисел. Если  это звучит непонятно, матрицу можно представить себе как таблицу из  рядов  и столбцов, содержащую десятичные  числа.

Более подробно каждый из типов  переменных будет описан далее, по мере их  применения в этой главе.

Имя  каждой  переменной MEL должно начинаться с символа  доллара ($),  это  уведомляет MEL о том, что данное имя принадлежит  именно  переменной. (Об этом зачастую забывают, что приводит к возникновению странных ошибок, поэтому не забывайте о символе $!)

В предыдущем примере после оператора print можно было бы ввести следующий код:

$myVariable  =  "goodbye"; print  $myVariable ;

Это заменило бы данные в переменной $myVariabl e на строку "goodbye" и приве­ ло бы к ее отображению на экране после фразы "hi there" . Как можно заметить, пере­ менные  оказываются весьма полезными, поскольку  они  позволяют  хранить различные данные в  различные периоды времени выполнения программы.

Язык MEL  обладает  довольно удобной  возможностью для  переменных:  их  можно объявлять и  присваивать   им  значение в  той же строке. Другими  словами,  предыдущий сценарий можно переписать следующим образом:

string $myVariable  = "hi  there" ; print  $myVariable ;

Между этими  двумя методами  объявления  и   инициализации  переменных нет ника­ ких реальных различий,  если  не учитывать  меньшее количество  введенного  кода и  луч­ шую удобочитаемость.  Пользователь может использовать любой способ, однако опытные программисты  предпочитают  экономить  нажатия клавиш. Однако экономить  на нажати­ ях клавиш  при  объявлении  и  присвоении  значений переменным можно и  другими  спо­ собами. Ниже приведено несколько примеров разных способов  объявления переменных.

•     Целое число

int $months = 11;  //.  стандартно е   объявлени е  и  присвоени е  int $days = 11, $year = 1977;  // 2   присвоения ,   разделени е   запято й

int $dollars = $pounds = $pesos = -14;   //  нескольк о  присвоени й  

/ /    одинаковог о    значени я

•     Десятичное число

float $distance = -7.1;                       / /     стандар т

float $height,  $weight = 87.8;   // 2   объявление ,   присвоени е   2 – й

$length =3.4 ;                               / /    неявно е    объявлени е   десятичног о   числ а

•      Строка

string $greetin g =  "Hello World!" ;   //   стандар т   

string $empty =  "",                                               / /     объявлени я    разделен ы

$hello = "HI!" ;                                     / /    запятой ,    окончани е   в   строк е   2

•     Массив

int $bits[5]  = {О,  1,  0,  1,  0} ;     //  стандар т  

float $lengths[10];      / /   пусто й  масси в   н а   1 0   элементо в   тип а   float

$lengths[0] • 4.6;                       //присвоени е   значени я   первом у   элемент у   

string $class[5] = {"Jim", "Davy", "Dave", "Deborah", "Wil"} ;

/ /    присвоени е    значени й   строковог о массив а

Когда переменные имеют осмысленные имена, читать код существенно легче.  Подоб­ но корректно написанным комментариям,  осмысленные имена переменных  существенно упрощают жизнь, когда  приходится  иметь дело  с  достаточно  сложным  сценарием или возвращаться  впоследствии    к    давно   написанному   коду.     Например,   переменная

$whisker_length намного понятнее, чем $wl.

Неявно е  объявлени е  

Переменные в   Maya  можно  объявлять неявно  (implicitly),  достаточно присвоить  им  зна­ чение, например $var="hello" . Это  присвоение   неявно объявляет  переменную   $va r как   строковую,  поскольку   кавычки   сообщают   интерпретатору   о   том,   что   значение "hello " имеет строковый тип. Однако,  поскольку  читать  неявные объявления  сложнее, они  зачастую  служат  причиной  ошибок. Поэтому  рекомендуется  использовать  именно явные объявления.

Источник: Кундерт-Гиббс, Джон,  Ларкинс, Майк,  Деракшани, Дариус, Кунзендорф, Эрик,  и др., Освоение Maya  8.5.:  Пер.  с англ.  – М.:  ООО  «И.Д.  Вильямс», 2007.  – 928  с.:  ил.

По теме:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий