可选型:optional
optional:它是一个数据类型,它只有两个值。一个表示已设置,一个表示未设置,未设置的时候就是nil。在很多时候nil的对象是不可以使用的。我们举个例子,将字符串专为int类型的方法toInt。这个方法只可以将数字字符串转化为int,比如”123”;但是”hi”就无法转换。
let possibleNum = "123"
let convertedNum:Int? = Int(possibleNum)
print("\(convertedNum)")
强制解包
当我们确定某个可选型有值的话,我们可以直接在该变量的后面加!。这样就可以直接使用。
选择绑定
如果要在if或者while判断中使用一个你不太确定是否有值的可选型的时候,就可以把值转化成一个临时常量或者变量。
if let tempnum = Int(possibleNum) {
print("\(tempnum)")
}
隐式解包可选类型
就是把它当成自动解包的可选类型。即不是每次使用的时候在变量/常量后面加!而是直接在定义的时候加。
断言
和c++的断言是一样的。
let age = -3
assert(age>=0,"age can't less than zero")