我经常在 Objective-C 中使用本地作用域来使命名更清晰。
{
UILabel *label = [[UILabel alloc] init];
[self addSubview:label];
self.titleLabel = label;
}
我正在尝试用 Swift 重写这段代码,如下所示:
{
let label = UILabel()
self.addSubview(label)
self.titleLabel = label
}
这让我得到以下错误:
Error: Braced block of statements is an unused closure.
那么如何在 Swift 中创建本地作用域呢?
Update:在 Swift 2.0 中,你只需使用do
关键词:
do {
let label = UILabel()
self.addSubview(label)
self.titleLabel = label
}
对于 Swift 2.0 之前的版本来说也是如此:
您可以定义与此类似的内容:
func locally(@noescape work: () -> ()) {
work()
}
然后使用这样的locally
块如下:
locally {
let g = 42
println(g)
}
(灵感来自locally
在斯卡拉的Predef目的。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)