Re: [Flashcoders] Variable scope within for loops: reusing iterator variables

2008-03-24 Thread Andrew Sinning
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

2008-03-24 Thread Cory Petosky
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

2008-03-24 Thread Meinte van't Kruis
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

2008-03-23 Thread Kerry Thompson
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