Умовний оператор ?: та оператор віднімання не товаришують

Маємо наступний код:

  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:

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

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