我声明以下内容:
var x:Int?
var y:Int?
我希望有一个第三个变量z
,它包含x
和y
的和。由于x
和y
都是可选项,所以z
也必须是可选项:
var z:Int? = x + y
但这会导致编译器错误 "可选类型'Int?'的值未解包; 你是否想使用'!'或'?' "
如果我解包x
和y
:
var z:Int? = x! + y!
我遇到了一个运行时错误,因为x
和y
都是nil,所以无法解包。
我可以通过以下方法实现期望的结果:
var z:Int?
if let x1 = x {
if let y1 = y {
z = x1+y1
}
}
但对于两个整数相加来说,这似乎有些冗长!有更好的方法实现吗?