[swift-evolution] [Idea] return if / return unless
David Rönnqvist
david.ronnqvist at gmail.com
Thu Aug 4 10:03:23 CDT 2016
One complication with allowing postfix conditionals for all statements is that it often needs to have an else clause as well (like the ternary operator “?:").
For example, what’s the type of “x” below?
let x = 5 if someCriteria()
And is “y” initialized or not?
let y: Int
y = 42 if someCriteria()
doSomething(with: y)
I realize that this idea is more about the feature/behavior than the naming, but renaming “guard” to “unless” is one of the commonly rejected proposals.
https://github.com/apple/swift-evolution/blob/master/commonly_proposed.md
- David
> On 04 Aug 2016, at 16:52, Kurt Werle via swift-evolution <swift-evolution at swift.org> wrote:
>
> Why would you do this just for return statements? Why not do postfix conditionals for all statements (like ruby)?
>
> I've always liked postfix conditionals, but not enough to suggest them. Mostly I'm curious about limiting the scope to return statements.
>
> On Thu, Aug 4, 2016 at 7:31 AM, Christian Kienle via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
> +1
>
> 2016-08-04 15:38 GMT+02:00 Julian Dunskus via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>>:
> How often have you written something like the following?
>
> `
> if indexPath.row == 0 { return }
>
> guard let thing = things[index] else { return nil }
> `
>
> I propose adding some syntactic sugar to make such statements more readable and simple to write:
>
> `
> return if indexPath.row == 0
>
> return nil unless let thing = things[index]
> `
>
> I don’t know how easy or hard this would be to implement, but I think it would improve some code significantly.
>
> –Julian Dunskus
>
> _______________________________________________
> 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>
>
>
>
>
> --
> Mit freundlichen Grüßen
>
> Christian Kienle
> Mobile Developer
>
> REWE Digital GmbH
> Domstraße 20, 50668 Köln, Büro: Schanzenstr. 6-20, 51063 Köln
> Geschäftsführer: Dr. Jean-Jacques Michel van Oosten (Vorsitzender), Christoph Eltze, Dr. Johannes Steegmann, Dr. Robert Zores
> Handelsregister: Amtsgericht Köln (HRB 78670) UST-ID-Nr.: DE 290 605 450
>
> Telefon: +49 151 11441782
> E-Mail: christian.kienle at rewe-digital.com <mailto:christian.kienle at rewe-digital.com>
> Internet: www.rewe-digital.com <http://www.rewe-digital.com/>
>
> Ein Unternehmen der REWE GROUP
> http://www.rewe-group.com <http://www.rewe-group.com/>
> _______________________________________________
> 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>
>
>
>
>
> --
> kurt at CircleW.org
> http://www.CircleW.org/kurt/ <http://www.circlew.org/kurt/>
> _______________________________________________
> 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/20160804/0ded460c/attachment.html>
More information about the swift-evolution
mailing list