If I use an Assignment within conditional, for e.g. if(userType='admin') Flex throws a warning,unlike Java, which throws an error. Why should Flex be doing this, despite being one of the newest languages? 1100: Assignment within conditional. Did you mean == instead of =?
答案 0 :(得分:1)
因为赋值在Actionscript中有一个值,这使得该语法合法,并且它们在Java中没有值,这使得它不具备。之所以出现这种差异,是因为尽管最近出现了Java-izations,Actionscript仍然是ECMAScript的后代。这种设计的其他后果是能够做出这样的陈述:
var foo:Number = 0;
var bar:Number = 0;
foo = bar = 2;
assertEquals(2, foo);
assertEquals(2, bar);
IMO,这是它可能具有的最佳行为 - 它不会破坏与旧版本的Actionscript的兼容性,并且它不会为了手持操作而删除语言功能,但它确实会引起注意的常见错误用户。
答案 1 :(得分:0)
我的猜测是编译器可能会自动修复它?
尽管Flex会这样做但很有意思。
(顺便说一下,它不是“Flex”,它是Actionscript 3)