我在swift中有一个丑陋(但工作)的解包代码:
var color = UIColor.whiteColor()
if ( label.backgroundColor? != nil )
{
color = label.backgroundColor!
}
有没有更简洁的方法可以像在C ++中那样在swift中编写它?
UIColor color = (label.backgroundColor==nil) ?
UIColor.whiteColor() : label.backgroundColor;
答案 0 :(得分:10)
Swift拥有“nil coalescing operator”??
,它完全符合你的要求
正在寻找:
let color = label.backgroundColor ?? UIColor.whiteColor()
如documentation中所述,a ?? b
是
a != nil ? a! : b
其中b
仅在a == nil
(短路评估)时进行评估。