对于 (const i) 而不是 for (var i)



尽管智能代码补全似乎没有得到它(至少在Flash Builder中),但编译器似乎确实允许它,并且将for迭代器变量定义为常量更具bug保护性。

        for (const i:int = 0; i < 100; ++i) {
            i = 5; // this breaks the loop's logic, but is caught by the compiler
        }

你不能更改const的值,const指的是常量的编程概念,这些属性永远不会改变。不能递增const,只能分配给const一次。在此之后,它将固定,直到它被处置。const作为 for 循环中的计数器是一个糟糕的选择,因为您无法更改它的值。您可以在此处了解有关const的 actionscript 实现的更多信息。

根据此文档,遗留编译器中存在一个错误,允许增量运算符处理const,此错误应该已在 Actionscript Complier 2.0 中得到解决,如果此代码有效,很可能解释是您正在使用旧编译器。

如果您使用的是 ASC 2.0 或更高版本,我只能告诉您,这种行为与 Actionscript 3 语言规则相矛盾,您不应该依赖它。这很可能是一个可以在Adobe的心血来潮下修复的错误。

最新更新