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
}