[swift-evolution] Computed properties: get and set using shorthand notation?

Jessy Catterwaul mr.jessy at gmail.com
Wed Feb 3 16:32:29 CST 2016


I consider 

func posF(x: Int) -> Int { return max(0, x) }

to be a precursor to the syntax we’ll eventually have:

func posF(Int) {max(0, $0)}


> On Feb 3, 2016, at 5:29 PM, Howard Lovatt via swift-evolution <swift-evolution at swift.org> wrote:
> 
> You can keep going on this line of thinking, e.g.:
> 
>     let posC = { max(0, $0) }
> 
> Is legal but you have to write:
> 
>     func posF(x: Int) -> Int { return max(0, x) }
> 
> On Thursday, 4 February 2016, Chris Liscio via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
> Why can’t we use shorthand argument names and implicit returns when specifying the get and set blocks in a computed property? I.e., Why must we refer to newValue in the implementation of set, and not $0 like we do in closures? Also, why do we need ‘return’?
> 
> Once you get used to the shorthand, you kinda want to use it all over…
> 
> This question came up recently when I was writing a façade for another class, and would have liked to written something like the following:
> 
> class Façade {
>   private var _wrapped: Something
> 
>   var wrappedProperty: Int {
>     get { _wrapped.property }
>     set { _wrapped.property = $0 }
>   }
> 
>   var multipliedProperty: Int { _wrapped.property * 42 }
> }
> 
> I apologize if this has already been discussed/requested before. I searched the archives and didn’t turn up anything that referred to this specifically.
> 
> Thanks!
> 
> Chris Liscio
> http://supermegaultragroovy.com <http://supermegaultragroovy.com/>
> Learn _your_ music with Capo: http://capoapp.com <http://capoapp.com/>
> 
> 
> 
> -- 
>   -- Howard.
> 
> _______________________________________________
> 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/20160203/27892a01/attachment.html>


More information about the swift-evolution mailing list