[swift-evolution] Guard Implicit Fallback
Thorsten Seitz
tseitz42 at icloud.com
Thu Feb 11 12:54:59 CST 2016
+1 to the arguments of Robert and Xiaodi
-Thorsten
> Am 11.02.2016 um 18:46 schrieb Xiaodi Wu via swift-evolution <swift-evolution at swift.org>:
>
> I believe this has already been proposed on the list in the past. I don't have easy access to the archives at the moment so I can't provide a convenient link.
>
> The gist of it--or at least one of the compelling arguments against the idea--was that the 'obvious' implicit behavior becomes non-obvious when you take into account guard statements inside loops, for example. Do you continue? break? return? And once you make a decision for each of the scenarios envisioned you end up with a complicated series of fallbacks that need extensive documentation, which is no longer much of a win over explicitly writing your fallback.
> On Thu, Feb 11, 2016 at 11:38 AM Developer via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
> I agree the nil fallback case is a common one, but the loss of readability and decreased understanding of control flow here makes me think special-casing this isn't all it's cracked up to be.
>
> ~Robert Widmann
>
> 2016/02/10 22:40、Tighe Racicot via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> のメッセージ:
>
>> Hey everyone,
>>
>> I feel that `guard` could be a little more Swifty and would like to start a conversation concerning it.
>>
>> For example, I often have a function whose job depends on an optional having a value, and so I guard-let at the start and return if the guard fails. Or if the function returns an optional type, I'll simply return nil if guard fails.
>>
>> Can we improve on the general fallback case? Could we simply say:
>>
>> func noReturn() {
>> guard let aValue = someOptional
>> ....
>> }
>>
>> and have that imply "else { return void or nil }"
>>
>> What are your thoughts?
>>
>> Tighe
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160211/9b64e45d/attachment.html>
More information about the swift-evolution
mailing list