He notado un comportamiento extraño de las variables en for bucles. No es realmente un problema, pero me molesta mucho.
En realidad, yo he creado dos bucles de esta manera:Confusión de alcance de variable for-loop
for (var i:uint; i<19; i++) SomeFunction (i);
for (var i:uint; i<26; i++) SomeOtherFunction (i);
Lo que me dieron fue una advertencia de compilación:
Warning: Duplicate variable definition.
Esta advertencia realmente me sorprendió. Nada de eso me ha pasado en otros idiomas.
Parece que la variable i
entra en el ámbito que es superior en la jerarquía y queda disponible fuera del bloque del bucle. También intenté abrazar el bloque del bucle con una llave, pero no cambió nada.
¿Por qué sucede? ¿Es normal? ¿Es posible evitarlo? Por ahora acabo de establecer diferentes nombres para ambas variables, pero esa no es una solución real, creo. Realmente me gustaría utilizar la variable con nombre i
en la mayoría de mis bucles for-loop.
Gracias por la respuesta significativa. :) Por cierto: 1) No sabía que 'uint' es más lento. Gracias, puede ayudarme en el futuro. 2) Lo sé, pero he leído que si un 'int' o' uint' no está inicializado, su valor es siempre 0. – rhino
no hay problema, me complace ayudarlo. Re: tu respuesta a 2), eso es correcto, pero si var tu i fuera de los bucles, tu segundo bucle ahora tendrá el valor del bucle anterior. así que ten cuidado. En mi experiencia, siempre es mejor ser explícito. –