空合运算符: ?? (两个问号)
运算方式:一个可变类型的值,如果有值,就把本身赋值给一个常量或者变量,如果为 nil,就把 ?? 右边的值赋值过去
这里配合三目运算符做举例说明
//第一种
var name:String?
if name != nil {
//不为空时强制解包,不会报错
name!
}else {
print("name = nil");
}
// 第二种
name = "lisi"
let name2 = (name != nil) ? name! : "zhangan"
空合运算符方式:
// 如果 name4有值,就强制解包,并返回,如果没有值,就返回右面的值
var name4:String?
name4 = "lisi"
let n1 = name4 ?? "zhangsan"