[swift-evolution] [Idea] Wrap switch cases in curly braces

David Sweeris davesweeris at mac.com
Fri Jul 8 00:37:32 CDT 2016


What would be the proposed syntax for cases with associated values?

In general, +1 for simplifying the syntax, but I'm not sure it'd work well, given that enums take on a larger roll in Swift than they do in other languages. Or maybe it'd be fine... I'm just too tired to picture it in my head.

- Dave Sweeris

> On Jul 7, 2016, at 15:07, G B via swift-evolution <swift-evolution at swift.org> wrote:
> 
> It has always seemed odd to me that `case`s use a colon as a delimiter rather than curly braces like everything else.  Is there a reason for this other than the legacy of C-like languages?  
> 
> If I wanted to write a series of branching `if` \ `else` statements I would do it like so:
> 
> if x==0      { print(0) }
> else if x==1 { print (1) }
> else if x==2 { print(2) }
> else         { print("other”) }
> 
> I believe all flow control is wrapped in curly braces, except for `case`s inside a `switch`:
> 
> switch x {
> case 0: print(0)
> case 1: print(1)
> case 2: print(2)
> default: print("other")
> }
> 
> 
> I feel like this would be more consistent with the rest of the syntax:
> 
> switch x {
> case 0 { print(0) }
> case 1 { print(1) }
> case 2 { print(2) }
> default { print("other”) }
> }
> 
> The colon syntax evokes a label, but the modern, complex `case` statements in Swift don’t act much like labels.
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution


More information about the swift-evolution mailing list