actionscript-3 - for(const i)而不是(var i)

尽管智能代码补全似乎并没有(至少在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一时兴起的错误。

https://stackoverflow.com/questions/28085286/

相关文章:

macos - AudioFileReadPackets错误-50

compiler-errors - 如何解决MiniZinc错误: “model inconsist

actionscript-3 - 如果使用 Flash Builder 4.7 而不是 4.6,则基

c# - 根据文本框错误重新定义变量

compiler-errors - Lazarus IDE-编译失败: Cannot open in

compilation - 如何在Windows上的SCons中导出具有备用扩展名的程序

opencv - 使用 CUDA 支持构建 OpenCV transpose.cu 上的错误

compiler-errors - gfortran在编译文件上不输出ident工具

sql - Microsoft SQL服务器

caching - 如何处理并发Web用户的重置CS-Script