Ich habe ein seltsames Verhalten der Variablen in for-Schleifen bemerkt. Es ist nicht wirklich ein Problem, aber es stört mich sehr.
Eigentlich habe ich erstellt zwei Schleifen auf diese Weise:For-Schleife variabler Bereich Verwirrung
for (var i:uint; i<19; i++) SomeFunction (i);
for (var i:uint; i<26; i++) SomeOtherFunction (i);
Was ich Warnung war eine Zusammenstellung erhalten:
Warning: Duplicate variable definition.
Diese Warnung hat mich wirklich überrascht. So etwas ist mir in anderen Sprachen nie passiert.
Es scheint, dass die i
Variable in den Bereich gelangt, der in der Hierarchie höher ist und außerhalb des Schleifenblocks verfügbar wird. Ich habe auch versucht, den Loop-Block in einer geschweiften Klammer zu umarmen, aber es hat nichts geändert.
Warum passiert das? Es ist normal? Ist es möglich, es zu vermeiden? Für jetzt habe ich nur verschiedene Namen für die beiden Variablen, aber das ist keine echte Lösung, denke ich. Ich würde gerne die i
-named Variable in den meisten meiner For-Schleifen verwenden.
Vielen Dank für die sinnvolle Antwort. :) BTW: 1) Ich wusste nicht, dass 'Uint' langsamer ist. Danke, es kann mir in Zukunft helfen. 2) Ich weiß, aber ich habe gelesen, dass, wenn ein "int" oder "uint" nicht initialisiert ist, sein Wert immer 0 ist. – rhino
kein Problem, froh zu helfen. Re: Deine Antwort auf 2), das ist richtig, aber wenn du dein i außerhalb der Schleifen variierst, wird deine zweite Schleife jetzt den Wert der vorherigen Schleife haben. also sei vorsichtig. Nach meiner Erfahrung ist es immer besser, explizit zu sein. –