Zauważyłem dziwne zachowanie zmiennych w pętlach for. To naprawdę nie problem, ale bardzo mi to przeszkadza.
Właściwie mam dwie pętle utworzone w ten sposób:Zamieszanie zakresów zmiennych dla pętli
for (var i:uint; i<19; i++) SomeFunction (i);
for (var i:uint; i<26; i++) SomeOtherFunction (i);
Co dostałam było ostrzeżenie kompilacja:
Warning: Duplicate variable definition.
Ostrzeżenie to naprawdę mnie zaskoczyło. Nic takiego nigdy mi się nie przydarzyło w innych językach.
Wydaje się, że zmienna i
dostaje się do zakresu, który jest wyższy w hierarchii i staje się dostępny poza blokiem pętli. Próbowałem też objąć blok pętli w nawiasach klamrowych, ale nic to nie zmieniło.
Dlaczego tak się dzieje? Jest to normalne? Czy można tego uniknąć? Na razie właśnie ustawiłem różne nazwy dla obu zmiennych, ale to nie jest prawdziwe rozwiązanie, które myślę. Bardzo chciałbym użyć zmiennej nazwanej i
w większości pętli for-loop.
Dziękuję za znaczącą odpowiedź. :) BTW: 1) Nie wiedziałem, że 'uint' jest wolniejsze. Dzięki, może mi to pomóc w przyszłości. 2) Wiem, ale czytałem, że jeśli 'int' lub' uint' jest niezainicjowany, jego wartość jest zawsze 0. – rhino
nie ma problemu, cieszę się z pomocy. Re: twoja odpowiedź na 2), zgadza się, ale jeśli zmienisz swój i poza pętlami, twoja druga pętla będzie miała teraz wartość poprzedniej pętli. więc uważaj. Z mojego doświadczenia wynika, że zawsze lepiej jest być wyraźnym. –