是否有等效于算术运算符的可选链接?
Is there an equivalent to optional chaining with arithmetic operators?
我添加了两个可选号码。现在看起来像这样:
if let a = optionalA {
if let b = optionalB {
return a + b
}
}
return nil
对于方法,有更方便的可选链接语法,如 optionalA.?method
语法。如果任一侧是 nil
?
,算术运算符是否有等价的 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
}
我添加了两个可选号码。现在看起来像这样:
if let a = optionalA {
if let b = optionalB {
return a + b
}
}
return nil
对于方法,有更方便的可选链接语法,如 optionalA.?method
语法。如果任一侧是 nil
?
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
}