[swift-evolution] Request for Discussion: Setup closures
ilya
ilya.nikokoshev at gmail.com
Sat Dec 5 18:16:20 CST 2015
> 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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151206/4e672e3a/attachment.html>
More information about the swift-evolution
mailing list