On Nov 16, 2007, at 5:30 PM, Garrett Smith wrote:

> Which is better?
>
> var nodes : int;
> var widgetMap = Widget.instances; // a map.
> var it:Iterator<string> = widgetMap.getKeys();
>
>  -- this: --
>
> try {
>   widgetMap.get(it.next()).hide();
> }
> catch(Exception e) {
>   if(e instanceof StopIteration) {
>
>   }
> }
>
>
>  -- or this: --
>
> while(it.hasNext()) {
>   widgetMap.get(it.next()).hide();;
> }

Neither. This is best:

for each (w in widgetMap)
     w.hide();

But your two examples are not equivalent. The first calls the  
iterator exactly once, the second loops over all keys. I'm asuming  
widgetMap.get(key) returns the corresponding widget value, so for- 
each-in is the way to loop, not for-in (and never while).

As in Python, you rarely have to get or make an iterator explicitly;  
you almost never have to catch StopIteration.

/be

_______________________________________________
Es4-discuss mailing list
Es4-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to