Swift optional可选项
声明
var xxx : Int? = 200
xxx = nil
var ooo: String?
强制解析
let ppp = xxx! // 这里保证xxx有值
if xxx != nil //如果不能保证xxx有值 那么可以判断xxx是否有值
可选绑定
if let qqq = xxx {
// 这里可以任意使用qqq, 一定是qqq有值, 才会执行这个代码块.
}else{
// 这里就是xxx为nil的时候会执行的代码了.
}
隐式解析
let possibleString: String? = "An optional string." //可选类型
let forcedString: String = possibleString! // 需要感叹号来强制解析获取值
let assumedString: String! = "An implicitly unwrapped optional string."// 隐式解析
let implicitString: String = assumedString // 不需要感叹号
运行时错误
- 如果你在隐式解析可选类型没有值的时候尝试取值,会触发运行时错误。
- 如果你在没有值的普通可选类型后面加一个惊叹号来强制解析, 也会出发运行时错误.
断言
assert(age>=0,"这里是断言的原因啥的, 方便debug") //如果断言成功, 程序可以继续进行, 断言失败, 程序终止, 这个是debug利器, 比php中的dd好用.