You can do it today (2.2 and 3.0-master) like this:

switch cityIDs["Paris"] {
        case let .Some(parisCityID) where 0..<10 ~= parisCityID:
        print("Paris city ID: \(parisCityID)")
        default:
        break
}

> On May 27, 2016, at 1:58 AM, Natthan Leong via swift-evolution 
> <[email protected]> wrote:
> 
> Hi there,
> 
> I was wondering if the community would like Swift to have a switch statement 
> with optional binding.
> 
> Take this simple dictionary as an example:
> 
> let cityIDs = ["Paris": 1, "London": 2]
> 
> Currently, this is how things are done if parisCityID is used only once 
> within an if-let statement for only a switch statement: 
> 
> if let parisCityID = cityIDs["Paris"] {
>     switch parisCityID {
>     case 0..<10:
>         print("Paris city ID: \(parisCityID)")
>     default:
>         break
>     }
> }
> 
> And here is the proposed switch statement with optional binding:
> 
> switch let parisCityID = cityIDs["Paris"] {
>     case 0..<10:
>         print("Paris city ID: \(parisCityID)")
>     default:
>         break
> }
> 
> With var:
> 
> switch var parisCityID = cityIDs["Paris"] {
>     case 0..<10:
>         parisCityID += 2 // just to demonstrate var
>         print("Paris city ID: \(parisCityID)")
>     default:
>         break
> }
> 
> Feedback welcomed!
> _______________________________________________
> 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