[swift-evolution] Request for Discussion: Setup closures

Erica Sadun erica at ericasadun.com
Sun Dec 6 11:10:46 CST 2015


I have developed something similar as well (http://ericasadun.com/2015/11/15/speeding-up-swift-playgrounds-with-closure-initialization-swiftlang/).

Is yours capable of handling enums and structs that would otherwise be let after declaration because mine is not.

-- E


> On Dec 5, 2015, at 5:16 PM, ilya via swift-evolution <swift-evolution at swift.org> wrote:
> 
> > PROBLEM: With many Apple-supplied classes, typical initializers fail to fully set up an instance for use.  Here's one example: ...
> 
> FWIW, I created a configuration operator more then a year ago, and use it in all of my Swift projects:
> 
> let task = NSTask() +=+ {
>     $0.launchPath = "/usr/bin/mdfind"
>     $0.arguments = ["kMDItemDisplayName == *.playground"]
>     $0.standardOutput = pipe
> }
> 
> Note you can also use the configured object in the rhs:
> 
> let questionLabel = UILabel() +=+ {
>     $0.textAlignment = .Center
>     $0.font =  UIFont(name:"DnealianManuscript", size: 72)
>     $0.text = currentQuestion.questionText
>     $0.numberOfLines = 0
>     view.addSubview($0)
> }
> 
> This $0. certainly looks ugly and it would be great to be able to simplify this. I don't llike the following much though (dot-syntax can be ambiguos here, and using simply a method name is even worse):
> 
> let questionLabel = UILabel() +=+ {
>     .textAlignment = .Center
>     .font =  UIFont(name:"DnealianManuscript", size: 72)
>     .text = currentQuestion.questionText
>     .numberOfLines = 0
>     view.addSubview($0)
> }
> 
> Actually I would be happy with something like
> 
> let questionLabel = UILabel() .{
>     ..textAlignment = .Center
>     ..font = UIFont(name:"DnealianManuscript", size: 72)
>     ..text = currentQuestion.questionText
>     ..numberOfLines = 0
>     view.addSubview($0)
> }
> 
> Other thoughts?
> 
>   
>  _______________________________________________
> 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/20151206/444bab91/attachment.html>


More information about the swift-evolution mailing list