The "after" example you posted seems to work already in Swift today. Is there something I'm missing?
On Sun, Jan 1, 2017 at 7:35 PM David Sweeris via swift-evolution < [email protected]> wrote: > > > Sent from my iPhone > > On Jan 1, 2017, at 19:25, Erica Sadun via swift-evolution < > [email protected]> wrote: > > Was helping a friend with some code and got inspired. I decided to throw > this on list to see if there's any traction. > > *Idea*: Introduce optional argument labels to tuples in switch statements > > *Motivation*: Cases can be less readable when pattern matching tuples. > Semantically sugared, optional argument labels could increase readability > for complex `switch` statements by incorporating roles into cases. > > Here's an example before: > > fileprivate func chargeState(for battery: BatteryService) > -> ChargeState > { > switch (battery.state, battery.isCalculating) { > case (.isACPowered, true): > return .calculating(isDischarging: false) > case (.isACPowered, _) where battery.isCharging: > return .charging > case (.isACPowered, _): > return .acPower > case (_, true): > return .calculating(isDischarging: true) > default: > return .batteryPower > } > } > > > and after: > > fileprivate func chargeState(for battery: BatteryService) > -> ChargeState > { > switch (battery.state, *calculating: battery.isCalculating*) { > case (.isACPowered, *calculating: true*): > return .calculating(isDischarging: false) > case (.isACPowered, _) where battery.isCharging: > return .charging > case (.isACPowered, _): > return .acPower > case (_, *calculating: true*): > return .calculating(isDischarging: true) > default: > return .batteryPower > } > } > > > It's a pretty minor change, and I could see it being added to allow case > statements to be more readable with a minimal change to the compiler. I > also have a back-burnered proposal I intend to introduce in Phase 2 that > would introduce Boolean raw value enumerations for flags. > > Thoughts? > > > I can't think of a reason not to do that... +1 > > - Dave Sweeris > _______________________________________________ > 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
