Re: [Flashcoders] Variable scope within for loops: reusing iterator variables
You are correct Jonathan, but loop blocks are delimited by brackets, so the for ( ... ) declaration is outside of the loop block. jonathan howe wrote: I had always thought that the scope of variables declared in the initialization part of the for loop were local to the loop block ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Variable scope within for loops: reusing iterator variables
Jonathon: In any other language, the scope would be as you describe. AS3 doesn't have block-level scoping -- the most local scope is always the function. Declaring a variable anywhere but the first line of a function is a lie -- the VM declares all variables as the first set of operations after pushing the function call on the stack. On Mon, Mar 24, 2008 at 7:36 AM, Andrew Sinning [EMAIL PROTECTED] wrote: You are correct Jonathan, but loop blocks are delimited by brackets, so the for ( ... ) declaration is outside of the loop block. jonathan howe wrote: I had always thought that the scope of variables declared in the initialization part of the for loop were local to the loop block ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders -- Cory Petosky : Lead Developer : PUNY 1618 Central Ave NE Suite 130 Minneapolis, MN 55413 Office: 612.216.3924 Mobile: 240.422.9652 Fax: 612.605.9216 http://www.punyentertainment.com ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Re: [Flashcoders] Variable scope within for loops: reusing iterator variables
besides, the compiler only warns you that you're about the overwrite the variable, by re-assigning it. In case of 2 loops(where the variable is only used within the loop), it doesn't have any real consequences. On Mon, Mar 24, 2008 at 4:56 PM, Cory Petosky [EMAIL PROTECTED] wrote: Jonathon: In any other language, the scope would be as you describe. AS3 doesn't have block-level scoping -- the most local scope is always the function. Declaring a variable anywhere but the first line of a function is a lie -- the VM declares all variables as the first set of operations after pushing the function call on the stack. On Mon, Mar 24, 2008 at 7:36 AM, Andrew Sinning [EMAIL PROTECTED] wrote: You are correct Jonathan, but loop blocks are delimited by brackets, so the for ( ... ) declaration is outside of the loop block. jonathan howe wrote: I had always thought that the scope of variables declared in the initialization part of the for loop were local to the loop block ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders -- Cory Petosky : Lead Developer : PUNY 1618 Central Ave NE Suite 130 Minneapolis, MN 55413 Office: 612.216.3924 Mobile: 240.422.9652 Fax: 612.605.9216 http://www.punyentertainment.com ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders -- M.A. van't Kruis http://www.malatze.nl/ ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
RE: [Flashcoders] Variable scope within for loops: reusing iterator variables
jonathan howe wrote: I was hoping someone could explain why I get Warning: 3596: Duplicate variable definition. warnings when I reuse an iterator variable. Example: for (var i:int = 0; i someArray.length; i ++) { // do something cool } for (var i:int = 0; i someOtherArray.length; i ++) { // do something even cooler } The first time you declare the var i, it is in scope for the rest of the function, not the loop. Think of it this way: function someFunc():void { . . . var i:int; for (i = 0; i someArray.length; i ++) { // do something cool } for (i = 0; i someOtherArray.length; i ++) { // do something even cooler } } Make sense? Cordially, Kerry Thompson ___ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders