[swift-evolution] [Idea] Switch Statement with Optional Binding
Kevin Nattinger
swift at nattinger.net
Fri May 27 11:25:43 CDT 2016
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 <swift-evolution at swift.org> 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
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
More information about the swift-evolution
mailing list