警告:重复的变量定义

时间:2013-02-03 12:07:27

标签: actionscript-3

如果我有2个for循环,同时声明var i,那么第二个会产生警告:

public function twoLoops(){
    for (var i:int = 0; i < 100; i++) {
    }

    for (var i:int = 0; i < 100; i++) { // i is already declared once
    }
}

我理解这种情况发生的原因,在this answer中有解释,但有没有解决方法(除了在方法开头声明i)?

2 个答案:

答案 0 :(得分:3)

这很简单 - 只是不要在第二个循环中声明它:

public function twoLoops(){
    for (var i:int = 0; i < 100; i++) {
    }

    for (i = 0; i < 100; i++) { // i is already declared once
    }
}

这将没有错误 - 正如您的警告告诉您的那样,它已经定义,因此您可以再次使用它,将其重新设置为0以允许循环正确执行。

答案 1 :(得分:1)

如果您坚持使用循环方式,请考虑使用函数:

public  function twoLoops() {
    for (var  i:int = 0; i < 10; i++) {
    }

    (function(){ 
        for (var i:int = 0; i < 100; i++) { // i is already declared once       
        } 
    })();
}

虽然它不会发出任何警告,但我想知道它真正解决了什么目的。