> On Jun 14, 2016, at 11:31 AM, Patrick Smith via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Thanks Xiaodi. Interesting arguments there. It possibly seems a shame to me, 
> because it has knock on effects of making other things more complicated. But 
> I do see how for the most simple case of unwrapping a single Optional, it 
> makes sense.
> 
> As much as I would like Brent’s proposal to make things easier to type, I 
> think nesting things inside a tuple, where a reader must keep track of which 
> input matches which output, could lead to harder to follow code.

Isomehow I think last yesterday's keynote should recast some expectations about 
the degree of complexity (richness) the language will ever reach... Somehow 
xamarin/c# might endupmbeing swift++ for many people


> 
> In my own code I will probably stick to using the long form `guard let a = 
> opt1, let b = opt2, let c = opt3 else { … }`, not because I would like typing 
> it, but because it will be the most clear.
> 
> I would have loved for SE-0099 to have gone with semicolon/newline separators 
> so I could write it like this, but alas:
> 
> guard
>   let a = opt1
>   let b = opt2
>   let c = opt3
> else {
>   …
> }
> 
> 
> A different thought — maybe if Xcode had autocompletion to unwrap Optionals 
> when inside an `if` or `guard` statement it would make things a lot easier. 
> Just type the full name of the optional, then press escape, and then code 
> will be suggested to unwrap it. Is the pain this proposal targets mainly in 
> the writing more than reading?
> 
> 
> guard opt·|·
> 
> 
> guard let <#placeholder#> = opt1
> 
> 
> guard let a = opt1
> 
> 
> guard let a = opt1, opt2·|·
> 
> 
> guard let a = opt1, let <#placeholder#> = opt2
> 
> 
> guard let a = opt1, let b = opt2
> 
> 
> 
> Patrick
> 
>> On 14 Jun 2016, at 2:07 PM, Xiaodi Wu <xiaodi...@gmail.com> wrote:
>> 
>> Also, see: 
>> https://github.com/apple/swift-evolution/blob/master/commonly_proposed.md
>> 
>> 
>>> On Mon, Jun 13, 2016 at 11:06 PM, Xiaodi Wu <xiaodi...@gmail.com> wrote:
>>> This has been suggested before, I believe. The core team has weighed in 
>>> several times; it seemed like there was some disagreement amongst them 
>>> whether the current syntax is the wisest, but the concluding statement 
>>> seemed uncontroversial: "I don't think it's something we can change."
>>> 
>>> Source:
>>> http://article.gmane.org/gmane.comp.lang.swift.evolution/15879/
>>> 
>>> 
>>>> On Mon, Jun 13, 2016 at 10:32 PM, Patrick Smith via swift-evolution 
>>>> <swift-evolution@swift.org> wrote:
>>>> 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
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to