Swift 使用默认值处理可能的nil赋值的更好方法?

Swift 使用默认值处理可能的nil赋值的更好方法?,swift,Swift,我在Objective-C中有此代码: CGFloat constant = self.leftConstraint.constant; 我希望在Swift中实现同样的功能,但这是我能够使其工作的唯一方法(leftConstraint是一个可选变量): 在Swift中是否有一种方法可以在一行中完成此操作?您的原始代码可以工作,因为在Obj-C中,消息发送到nil Swift不允许零消息。相反,您可以使用可选的链接和nil coalescing操作符: let leftConstraintCon

我在Objective-C中有此代码:

CGFloat constant = self.leftConstraint.constant;
我希望在Swift中实现同样的功能,但这是我能够使其工作的唯一方法(leftConstraint是一个可选变量):


在Swift中是否有一种方法可以在一行中完成此操作?

您的原始代码可以工作,因为在Obj-C中,消息发送到nil

Swift不允许零消息。相反,您可以使用可选的链接和nil coalescing操作符:

let leftConstraintConstant: CGFloat = self.leftConstraint?.constant ?? 0
这甚至更好,因为您明确了代码应该做什么:传播nil值,并默认为0

let leftConstraintConstant: CGFloat = self.leftConstraint?.constant ?? 0