如果有像a?.b
这样的swift中可选链接的能力,它返回b类型的可选项,那么为什么没有能力打开像这样的选项:
let x: Int? = 5, y: Int? = 6
let z: Int?
z = x? + y?
我的意思是:如果所有参数都有值,则应用+
(或任何其他函数),或者返回' nil'除此以外。它对我来说看起来非常有用,所以我不确定,如果我不缺少理解这一点的东西。
答案 0 :(得分:1)
why
并不是真正的回答,而是基于意见 - 尽管Swift团队没有在Swift领域实现隐式内容,这是一个很好的理由。
但您可以轻松为可选的Ints定义新的+
运算符:
func +(lhs: Int?, rhs: Int?) -> Int? {
if let l = lhs, r = rhs {
return l + r
}
return nil
}
let x: Int? = 5, y: Int? = 6
let z = x + y
答案 1 :(得分:0)
你也可以使用flatmap删除选项,并减少为这样的总和,
cassandra.yaml