[swift-evolution] Property Getter Return Statement

Mike Kluev mike.kluev at gmail.com
Wed Oct 11 04:53:32 CDT 2017


On Tue Oct 10 15:02:37 CDT 2017 Slava Pestov spestov at apple.com wrote:

>> I’m minorly opposed, because it feels like a slippery slope. What about
function bodies? etc
>>
>> func foo() -> Int { 3 } // should this be allowed?

a small -1

or even:

func foo() { 3 } // Int return type inferred as well

a small -1

or

func(x = true) // Bool for x parameter inferred

a small +1

> In fact the reason I thought the original thread was about
> omitting the return type, rather than just omitting the ‘return’,
> is that I feel the main reason that single-expression closures
> exist is so that their type can be inferred as part of the
> expression containing the closure. Swift does not infer types
> across statement boundaries, so single expression closures
> exist, as a special case, to help you avoid declaring types in some cases.

if you are from a school of thought that "everything is a closure" - it
would make sense.

"if expression closure else closure"

"var x { // return type inferred :-)
   get closure
   set closure
}"

"func foo closure"

in the latter case it would worth to use the same parameter passing syntax
as in closures for consistency:

func foo { (x: Int) in }
vs
func foo(x: Int) {}

> Chris will say no, it’s about concision, and omitting the ‘return’,
> but deep down in his heart, he knows that single-expression
> closures were really just a type inference hack :-)

the amount of optimisation done in closure syntax was overwhelming when i
first saw it.

Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20171011/8e215562/attachment.html>


More information about the swift-evolution mailing list