[swift-evolution] Switch on an optional enum -- `case: nil`?
David Sweeris
davesweeris at mac.com
Thu May 5 10:55:36 CDT 2016
So… Is your idea that wrapping a SomeEnum in an Optional would add some “invalid” case to SomeEnum, or that switching on a SomeEnum? would be implicitly rewrite:
switch result {
case .heads: print("heads")
case .tails: print("tails")
case .none: print("not yet flipped") // exhaustive
}
to:
switch result {
case .none: print("not yet flipped")
case .some(let _result):
switch _result {
case .heads: print("heads")
case .tails: print("tails")
}
}
> On May 5, 2016, at 10:40 AM, Eric Miller via swift-evolution <swift-evolution at swift.org> wrote:
>
> Wondering if you guys think this is a reasonable idea.
>
> I was switching on an optional enum today, and naturally gravitated towards including nil as a case:
>
> enum Coin {
> case heads
> case tails
> }
> var result: Coin?
>
> switch result {
> case heads: print("heads")
> case tails: print("tails")
> case nil: print("not yet flipped") // exhaustive
> }
>
> Doesn't compile, and of course I can if-let or guard to unwrap instead, but I like the compactness of this.
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160505/1c21cd7c/attachment.html>
More information about the swift-evolution
mailing list