Swift 是否有与算术运算符的可选链接等效的方法?
我添加了两个可选数字。现在看起来是这样的:Swift 是否有与算术运算符的可选链接等效的方法?,swift,optional,Swift,Optional,我添加了两个可选数字。现在看起来是这样的: if let a = optionalA { if let b = optionalB { return a + b } } return nil infix func +?(a: Int?, b: Int?) -> Int? { if aa = a { if bb = b { return aa + bb } } return ni
if let a = optionalA {
if let b = optionalB {
return a + b
}
}
return nil
infix func +?(a: Int?, b: Int?) -> Int? {
if aa = a {
if bb = b {
return aa + bb
}
}
return nil
}
对于方法,有更方便的可选链接语法,如
optionalA.\method
语法。如果任何一方为nil
?则有一个等价的算术运算符返回nil
?可以创建一个运算符+?
,它可以这样做:
if let a = optionalA {
if let b = optionalB {
return a + b
}
}
return nil
infix func +?(a: Int?, b: Int?) -> Int? {
if aa = a {
if bb = b {
return aa + bb
}
}
return nil
}
但我想知道是否还有另一种内在的方式可以做到这一点。我认为没有内在的方式。但您可以创建自己的操作员功能:
func +(lhs: Int?, rhs: Int?) -> Int? {
if let a = lhs {
if let b = rhs {
return a + b
}
}
return nil
}
var a: Int? = 1
var b: Int? = 2
var c = a + b
以下是为Swift 3更新的自定义操作员方法:
infix operator +?
func +?(a: Int?, b: Int?) -> Int? {
if let aa = a, let bb = b {
return aa + bb
}
return nil
}