Sugaring the switch()

David-Sarah Hopwood david.hopwood at industrial-designers.co.uk
Sat Sep 6 15:18:24 PDT 2008


Michael Haufe wrote:
> I didn't see this mentioned yet, so I'd like to propose implementing a 
> feature available in VB.NET that I think would be valuable in ES. Some 
> sugar for the switch() block:
> 
> switch(foo){
>     case 1,2,3:
>         //stuff...
>     break;
>     case a,b,c:
>         //stuff...
>     break;
> }

That syntax can't be used because a case label is an arbitrary expression,
so it would be interpreted as a comma expression.

> Would be equivalent to:
> 
> switch(foo){
>     case 1:
>         //stuff...
>     break;
>     case 2:
>         //stuff...
>     break;
>     case 3:
>         //stuff...
>     break;
>     case a:
>         //stuff...
>     break;
>     case b:
>         //stuff...
>     break;
>     case c:
>         //stuff...
>     break;
> }

What is wrong with:

   switch (foo) {
       case 1: case 2: case 3:
           // stuff...
           break;
       case a: case b: case c:
           // stuff...
           break;
   }

?

-- 
David-Sarah Hopwood


More information about the Es-discuss mailing list