Условный оператор ?: и оператор вычитания не дружат

Имеем следующий код:

  1. trace(”begin”);
  2. var bool:Boolean = true;
  3. var flea:Number = -(bool ? 10 : 20);
  4. trace(”flea: “+flea.toString());

При попытке компиляции во Flex 2 вы получите

“An internal build error has occurred. Please check the Error Log.” или

“1131: Classes must not be nested.”. Т.е., ничего работающего Вы не получите.

А Flash Вам вообще ничего не скажет, но в output Вы не увидите даже “begin”.

Это относиться только к ActionScript 3.0. В ActionScript 2.0 приведенный код скомпилируется как нужно.

P.S. Про приведенную ошибку во Flex 2 Вы можете почитать тут (на английском). Она появляется ещё в некоторых случаях.

Таґи: , ,

Коментарів: 2 to “Условный оператор ?: и оператор вычитания не дружат”

  1. Оператор if керує поведінкою компілятора :) › блохи:

    […] Умовний оператор ?: та оператор віднімання не товаришу?… Блоха з DisplayObject.alpha […]

  2. Iv:

    Спасибо огромное!
    - такие глюки, если о них не знать, могут выесть весь мозг.
    Это очень полезная информация.

Залиште свій коментар