尽管智能代码补全似乎并没有(至少在Flash Builder中),但编译器似乎允许这样做,并且将迭代器变量定义为常量更具保护性。 for (const i:int = 0; i < 100; ++i) {
i = 5; // this breaks the loop's logic, but is caught by the compiler
}
最佳答案
您不能更改const
的值,const
指的是Constants的编程概念,该属性永远不变。您不能递增const
,只能分配一次const
。此后,将其固定直到将其处置。 const
作为for循环中的计数器是一个糟糕的选择,因为您无法更改其值。您可以了解有关const
here的 ActionScript 实现的更多信息。
根据此document的描述,旧版编译器中存在一个错误,该错误允许增量运算符使用const
进行操作,此错误应已在Actionscript Complier 2.0中解决,如果此代码有效,则最有可能的解释是您正在使用旧版编译器。
如果您使用的是ASC 2.0或更高版本,我只能告诉您的是,此行为与Actionscript 3 language rules相矛盾,因此您不应该依赖它。这很可能是Adobe一时兴起的错误。
关于actionscript-3 - for(const i)而不是(var i),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28085286/