Порядок оценки условных выражений в actionscript 3.0 (Flex) - PullRequest
1 голос
/ 25 января 2010
var btn:Button;
if(btn != null  &&  btn.label != '') {
      mx.controls.Alert.show("d");  
}

В приведенном выше условии if гарантируется, что первое условие (btn! = Null) будет оцениваться до второго условия?

Ответы [ 2 ]

4 голосов
/ 25 января 2010

Да - ActionScript выполняет соответствующее короткое замыкание для оператора &&:

Таким образом, он не только будет оценивать выражения в порядке, который вы описали, но и вообще не будет беспокоиться об оценке второго выражения, если первое вернет false (что является столь же важной деталью, как порядок вычисления).

Как примечание, ActionScript также поддерживает короткое замыкание логического или оператора (||) .

1 голос
/ 25 января 2010

Да, это так. Выдержки из Adobe liveocs относительно оператора &&:

&& логический AND Оператор :

Использование:

expression1 && expression2

Возвращает expression1, если это false или может быть преобразовано в false, и expression2 в противном случае.

...