如果我在条件中使用作业,例如
if(userType='admin')
Flex 会抛出警告,与 Java 不同,Java 会抛出错误。 尽管 Flex 是最新的语言之一,为什么要这样做?
1100:条件内的赋值。 您的意思是 == 而不是 = 吗?
因为赋值在 Actionscript 中具有值,这使得该语法合法,而它们在 Java 中没有值,这使得它不合法。区别在于,尽管最近进行了 Java 化,但 Actionscript 仍源自 ECMAScript。这种设计的其他后果是能够做出如下陈述:
var foo:Number = 0;
var bar:Number = 0;
foo = bar = 2;
assertEquals(2, foo);
assertEquals(2, bar);
IMO,这是它可能具有的最佳行为 - 它不会破坏与旧版本 Actionscript 的兼容性,并且不会出于手持的目的而删除语言功能,但它确实引起了人们注意的常见错误用户。
我的猜测是编译器可能会自动修复它?
有趣的是 Flex 会这么做。
(顺便说一句,这不是“Flex”,而是 Actionscript 3)