我在swift中有一个丑陋(但工作)的解包代码块:
var color = UIColor.whiteColor()
if ( label.backgroundColor? != nil )
{
color = label.backgroundColor!
}
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方式来编写这个在swift中像我在C++中一样?
UIColor color = (label.backgroundColor==nil) ?
UIColor.whiteColor() : label.backgroundColor;
Run Code Online (Sandbox Code Playgroud)
Mar*_*n R 10
Swift拥有"nil coalescing operator" ??,它完全符合您的要求:
let color = label.backgroundColor ?? UIColor.whiteColor()
Run Code Online (Sandbox Code Playgroud)
如文档中所述,a ?? b是一个快捷方式
a != nil ? a! : b
Run Code Online (Sandbox Code Playgroud)
其中b仅评估a == nil(短路评估).
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |