如果我有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
)?
答案 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
}
})();
}
虽然它不会发出任何警告,但我想知道它真正解决了什么目的。