> On Dec 22, 2015, at 11:58 PM, Andrew Duncan via swift-evolution
> <[email protected]> wrote:
>
> Motivation
>
> The guard statement rescues us from the pyramid of doom, and lets our code
> hug the left margin more... if the failure case is false or nil. I'd like to
> guard against specific values in an enum, and get the same flattening of code
> flow. This generalizes Swift’s convenient handling of Optionals. (I have a
> hazy perception that this was mooted for 1.x, but can’t remember where I read
> it.)
>
> The goal is to make error-handling by result-returning smoother. (I need say
> no more about side-effect NSError** parameters.) Consider everyone’s favorite
> enum example:
>
> enum Result {
> case .Fail(String) // Error message
> case .Succeed(MyType) // Something we use.
> }
>
> The Pitch (to avoid TL;DR)
>
> I'd like to use something like this:
>
> guard case let .Succeed(m) = returnsResult() else {
> return it
> }
> // Can safely use m, otherwise Result is passed back the call stack.
What about an enumeration with three cases?
For example:
enum Result {
case Success
case Failure
case Cancelled
}
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution