If Pyry’s suggestion remained the preferred way of unwrapping a tuple, could it also become the only way for unwrapping a single item?
guard case let a? = opt1 {...} Or even shortened for matching optionals only: guard let a? = opt1 {...} Or even as has often been requested, to keep the same name: guard let opt1? {...} Multiples: guard let (opt1?, opt2?, opt3?) {...} guard let (a?, b?, c?) = (opt1, opt2, opt3) {...} Sorry, not trying to derail, but it always has seemed like something shorter and more self explanatory could be made for optionals. `?` in pattern matching is a special syntax anyway, so why not make this common use case easier? Patrick _____________________________ From: Pyry Jahkola via swift-evolution <swift-evolution@swift.org> Sent: Sunday, June 12, 2016 10:04 PM Subject: Re: [swift-evolution] [Draft] Tuple-Based Compound Optional Binding To: Brent Royal-Gordon <br...@architechies.com> Cc: swift-evolution List <swift-evolution@swift.org> On 12 Jun 2016, at 14:46, Brent Royal-Gordon via swift-evolution <swift-evolution@swift.org> wrote: guard let (a, b, c) = (opt1, opt2, opt3) else { ... } You mention `guard case` in the motivation, but I think for the uninitiated reader it would be fair to point out that the following example already works equivalently, with only a few extra characters: guard case let (a?, b?, c?) = (opt1, opt2, opt3) else { ... } Aside of that, it's yet more magic to our `if let` syntax but I don't mind, it would be useful at times. — Pyry
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution