[swift-evolution] guard let x = x
Erica Sadun
erica at ericasadun.com
Tue Nov 1 17:13:09 CDT 2016
> On Oct 31, 2016, at 7:37 PM, Joe Groff <jgroff at apple.com> wrote:
>
> Sorry for piling onto the bikeshed. We do already have a notation for testing that an Optional isn't nil, `x != nil`. We could theoretically bless `<decl ref> != nil` as a statement condition to also unwrap the referenced declaration in the scope guarded by the condition. (`<decl ref> is T` could similarly rebind a declaration as the cast type.)
>
> -Joe
Feels like too much magic. I'd like there to be a positive declaration of intent.
The tl;dr of what I posted today is:
guard unwrap anOptional else { ... } // basic optional
if unwrap .string(myString) ~= jsonObject { ... } // Non-optional object
if unwrap .contact(code, var message) ~= jsonObject { ... } // Multi-valued
if .some(let value) ~= anOptional { ... } // Pattern match operator instead of case
if let value? ~= anOptional { ... } // ditto
-- E
>
>> On Oct 28, 2016, at 3:34 PM, Erica Sadun via swift-evolution <swift-evolution at swift.org> wrote:
>>
>>
>>> On Oct 26, 2016, at 11:39 AM, Chris Lattner via swift-evolution <swift-evolution at swift.org> wrote:
>>>
>>>
>>>> On Oct 26, 2016, at 10:23 AM, Joshua Alvarado <alvaradojoshua0 at gmail.com> wrote:
>>>>
>>>> In your example the keyword only makes sense if you are shadowing the optional variable. How would unwrap work with a different name?
>>>
>>> It wouldn’t: “unwrap” would never include an equal sign. If you want to do that, use a standard "if let”.
>>>
>>> -Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20161101/4339c2ae/attachment.html>
More information about the swift-evolution
mailing list