I’d imagine it would be the same just without the colon and with the braces:


enum MyEnum {
    case IntEnum(Int)
    case StringEnum(String)
}


var x=MyEnum.StringEnum("Hello")

switch x {
    case .IntEnum(let x) {
        print(x)
    }

    case .StringEnum(let x) {
        print(x)
    }

}



Not much different than:

if case .StringEnum(let v) = x {
    print(v+" again")
}

except that the switch compares all case statements against x.



> On Jul 7, 2016, at 10:37 PM, David Sweeris <[email protected]> wrote:
> 
> 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 
>> <[email protected]> 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
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to