概念
在OC开发中,如果一个变量暂停不使用,可以赋值为0(基本属性类型)或者赋值为空(对象类型)
在swift开发中,nil也是一个特殊的类型.因为和真实的类型不匹配是不能赋值的(swift是强类型语言)
但是开发中赋值nil,在所难免.因此推出了可选类型
可选类型的使用
// var name1:Optional<String> = nil //不常用 等价于
var name2: String? = nil //常用(语法糖)
name2 = "大哈哈"
print(name2) //打印:Optional("大哈哈")
// print(name2!) //注意:先判断再打印 强制解包->如果没赋值会导致奔溃 打印:大哈哈
//注意: 强制解包是非常危险哦, 如果可选类型为nil,则会奔溃( fatal error: unexpectedly found nil while unwrapping an Optional value)
//建议:在强制解包钱,先对可选类型进行判断
if name2 != nil {
print(name2!) //强制解包 打印:大哈哈
}
//针对上面写法进行优化 (可选绑定)
//1.判断那么是否有值,如果没有值,则不执行{}
//2.如果name有值,系统会自动将name进行解包,并且将解包后的结果,赋值给name2
if let name2 = name2{
print(name2)
}
网友评论