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
> >  [email protected]
> >  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
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>



-- 
M.A. van't Kruis
http://www.malatze.nl/
___
Flashcoders mailing list
[email protected]
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
>  [email protected]
>  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
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders


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
[email protected]
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
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders