Flex:条件赋值

问题描述 投票:0回答:2

如果我在条件中使用作业,例如

if(userType='admin')

Flex 会抛出警告,与 Java 不同,Java 会抛出错误。 尽管 Flex 是最新的语言之一,为什么要这样做?

1100:条件内的赋值。 您的意思是 == 而不是 = 吗?

apache-flex language-features
2个回答
1
投票

因为赋值在 Actionscript 中具有值,这使得该语法合法,而它们在 Java 中没有值,这使得它不合法。区别在于,尽管最近进行了 Java 化,但 Actionscript 仍源自 ECMAScript。这种设计的其他后果是能够做出如下陈述:

var foo:Number = 0;
var bar:Number = 0;
foo = bar = 2;
assertEquals(2, foo);
assertEquals(2, bar);

IMO,这是它可能具有的最佳行为 - 它不会破坏与旧版本 Actionscript 的兼容性,并且不会出于手持的目的而删除语言功能,但它确实引起了人们注意的常见错误用户。


0
投票

我的猜测是编译器可能会自动修复它?

有趣的是 Flex 会这么做。

(顺便说一句,这不是“Flex”,而是 Actionscript 3)

© www.soinside.com 2019 - 2024. All rights reserved.