如果我有 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
}
}
我理解发生这种情况的原因,在这个答案中有解释,但是有没有办法解决它(除了i
在方法的开头声明)?
如果我有 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
}
}
我理解发生这种情况的原因,在这个答案中有解释,但是有没有办法解决它(除了i
在方法的开头声明)?
这很简单——只是不要在第二个循环中声明它:
public function twoLoops(){
for (var i:int = 0; i < 100; i++) {
}
for (i = 0; i < 100; i++) { // i is already declared once
}
}
这将没有错误 - 正如您的警告告诉您的那样,它已经定义,因此您可以再次使用它,将其设置回 0 以允许循环正确执行。
如果您坚持按照自己的方式使用循环,请考虑将其包装在一个函数中:
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
}
})();
}
尽管它不会发出任何警告,但我想知道它真正为您解决了什么目的。