可空类型:
!可以强制展开可空类型。就是访问封装值的意思。
if let theError = errorCodeString {
if let errorCodeInteger = Int(theError) {
print("\(theError)" + "\(errorCodeInteger)")
}
} else {
print("可空类型内部没有值NO NO NO NO ")
}
类型转换的时候结果是可空类型,所以需要let 这种临时变量来获取。
隐式展开可空类型:
将变量声明为 var errorCodeString: String!
可空链式调用:
可空类型的变量赋值给其他变量,那么这个其他变量也是可空类型的。
var upCaseErrorDescription = errorDescription?.uppercased()
可空类型可以被原地的修改:
upCaseErrorDescrption?.append(" PLEASE TRY AGAIN")
空合并运算符:
let description = errorDescription ?? "No error"
如果errorDescription是nil的话就会返回 No error,
如果不是nil的话就返回errorDescription本身的值。