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

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

  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 Вы можете почитать тут (на английском). Она появляется ещё в некоторых случаях.

Таґи: , ,

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

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

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

  2. Iv:

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

  3. Video:

    Было интeрeсно почитать. Спасибо.

  4. Мамонов:

    Автор, а вы в каком городе живете если не секрет?

  5. Shuvalov:

    Помнится, кто-то выкладывал фотки…

  6. Klimov:

    Неплохо

  7. Chichkanov:

    Интересная тема, Спасибо!

  8. Teterev:

    Даже и не придирешься!

  9. Иванов:

    Спасибо! Буду теперь заходить на этот блог каждый день!

  10. Красноперов:

    Спасибо, интересно было прочитать.

  11. Burkov:

    Шрифт трудно читается у вас на блоге

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