НЕЧЕСТНЫЕ ПРИЕМЧИКИ выражения сравнения
Честно говоря мне порядком поднадоело писать скрипты не так, как я пишу обычно. Поэтому сейчас рассмотрим некоторые часто используемые выражения, упрощения и т.п. а также попробуем разобраться что такое функции. Итак, создадим новый файл и в первом кадре пропишем:
a= 1==1; // присваиваем переменной a результат выражениЯ 1==1
trace (a);// выводим присвоенное значение в окно Output
b= 1>1;// присваиваем переменной b результат выражениЯ 1>1
trace (b);// выводим присвоенное значение в окно Output
if ( a or b ) { // если хотЯ бы одна переменнаЯ возвращает true то
trace ("a or b is true"); // выводим строку сообщениЯ в окно Output
}
if (a and b) { // если обе переменные возвращают true, то
trace ("a and b is true"); // выводим строку сообщениЯ в окно Output
} else { // иначе, то есть если хотЯ бы одна переменнаЯ возвращает false, то
trace ("a or b or a and b is false"); // выводим строку сообщениЯ в окно Output
}
Output:
true
false
a or b is true
a or b or a and b is false
Всё просто. Как обычно.Только одна строка не показалась в окне Output - a and b is true, что тоже вполне понятно. Что произошло и как это используется? Выражение 1==1 и 1>1 это выражения сравнения. Такие выражения возвращают true или false. Далее результат выражения сравнения 1==1 присваивается переменной a, то есть a = true. То-же с b, но только 1>1 это неправда и поэтому b становится равным false. Итак присваивание результата выражения сравнения переменной служит в некоторых случаях для упрощения вычисления кода а иногда для удобочитаемости и удобописаемости :)). Например, если одно и то же выражение используется в нескольких местах:
if (1==1 and 1>1) {
} else if (1==1) {
} else if (1>1) {
}
выражение будет выполнено быстрее, если рассчитать выражения сравнения заранее:
a = 1 == 1;
b = 1>1;
if (a and b) {
} else if (a) {
} else if (b) {
}
Особенно эффективно применять этот прием, когда выражения сравнения сложны и громоздки и часто одно и то же выражение встречается в скрипте.