Swift:添加选项Ints

我声明如下:
var x:Int?
var y:Int?

我想要一个包含x和y之和的第三个变量z.据推测,正如x& y是选项,z也必须是可选的:

var z:Int? = x + y

但是这给出了一个编译器错误“可选类型’Int?’的值没打开;你的意思是用’!’要么 ‘?’”

如果我解开x& Y:

var z:Int? = x! + y!

我得到一个运行时错误,因为x& y是零,所以不能打开.

我可以达到如下所需的结果:

var z:Int?

if let x1 = x {
    if let y1 = y {
       z = x1+y1
    }
}

但是将2个整数加在一起似乎有点冗长!有没有更好的方法来实现这一目标?

这是我的看法,我认为它更清洁:
let none:Int? = nil
let some:Int? = 2

func + (left: Int?,right:Int?) -> Int? {
    return left != nil ? right != nil ? left! + right! : left : right
}

println(none + none)
println(none + some)
println(some + none)
println(some + some)
println(2 + 2)

结果如下:

nil
Optional(2)
Optional(2)
Optional(4)
4

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...