3

for両方を宣言する2 つのループがある場合var i、2 番目のループは警告を生成します。

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する以外)?

4

2 に答える 2

3

簡単です - 2 番目のループで宣言しないでください。

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

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

これはエラーなしで動作します - 警告が示すように、それは既に定義されているので、再度使用してループを適切に実行できるように 0 に戻すことができます。

于 2013-02-04T00:15:30.417 に答える
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       
        } 
    })();
}

警告は出ませんが、実際にどのような目的を解決してくれるのでしょうか。

于 2013-02-03T19:23:18.863 に答える