Nor I. This syntax is excellent, thanks Krzysztof.
On Thu, May 5, 2016 at 9:56 AM, David Sweeris wrote:
> Oh, cool! I didn’t realize this syntax existed.
>
> On May 5, 2016, at 10:52 AM, Krzysztof Siejkowski via swift-evolution <
> swift-evolution@swift.org> wrote:
>
>
> It doesn’t compile becau
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: pr
Oh, cool! I didn’t realize this syntax existed.
On May 5, 2016, at 10:52 AM, Krzysztof Siejkowski via swift-evolution
wrote:
>
> It doesn’t compile because you’re switching on the Optional and trying to
> pattern match it to Coin.
>
> It compiles right when you pattern match it to Optional:
>
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
I was about to provide this, but Krzysztof's example is more compact than
mine:
enum Coin {
case heads
case tails
}
var result: Coin?
switch result {
case .Some(.heads): print("heads")
case .Some(.tails): print("tails")
case nil: print("not yet flipped") // exhaustive
}
On Thu, May 5,
It doesn’t compile because you’re switching on the Optional and trying to
pattern match it to Coin.
It compiles right when you pattern match it to Optional:
switch result {
case .heads?: print("heads")
case .tails?: print("tails")
case nil: print("not yet flipped")
}
Best,
Krzysztof
On 5 May 2