removing default case requirement?

Quirin Schroll qs.il.paperinik at gmail.com
Tue Apr 4 12:47:18 UTC 2023


On Friday, 31 March 2023 at 15:20:41 UTC, Steven Schveighoffer 
wrote:
> Why not? How much does this rule help you, vs. annoy you?

[Little OT] I don’t really care. In my experience, a `switch` is 
one of the two cases: Every case leads to a `return` or every 
case leads to a `break`. Occasionally, there are cases ending in 
`throw`. When I code C#, which I do occasionally, I almost never 
use `switch` statements, but `switch` expressions¹, where every 
code path necessarily must return a value. The best part about 
C#’s `switch` expressions is that they don’t need (or even allow 
for) `break`. I consider `switch` statements like `goto`: It’s 
there when you need it, but it shouldn’t be your first attempt.

As D implemented [DIP 1043 *Shortened Method 
Syntax*](https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1043.md),² it seems reasonable to also implement `switch` expressions in D much alike C#’s.

¹ 
https://learn.microsoft.com/en-US/dotnet/csharp/language-reference/operators/switch-expression
² https://github.com/dlang/DIPs/tree/master/DIPs


More information about the Digitalmars-d mailing list