可选类型
什么是可选类型呢?一个变量要么有值,要么没有值。
那么为什么产生可选类型呢?比如在OC中基本数据如果不赋值都会存在默认值,所以不会产生没有值得情况,但是没有值和默认值是完全不同的两个概念所以Swift中引入了”可选类型的概念”,来区分有值和没有值两种情况
1、可选类型
可选类型也是一种类型,代表可能有值,也可能没有值
swift中nil,不同于oc中的nil,oc中的nil为一个特殊的地址,swift中nil就是一个特殊含义的字符,表示没有值
只有可选类型才能被赋值为nil
非可选类型无论在哪里,什么时候都有值
var num: Int? = 1 |
2、强制解包(取出可选类型里面的值)
var num: Int? = 0 |
1、类型转换符号
is
:用于判断一个实例是否是某种类型
var a: Int = 0 |
as
: 净实例转换成某一种类型as?
:将某个类型转换成可选类型,通过判断某个可选类型是否有值,来决定是否转换成功(as? 代表系统尝试帮你进行转换,转失败了,值就是nil)as!
:将某个类型转成具体类型,但是如果不是该类型,程序就会崩溃 (as! 代表肯定可以转换成功,转换结果是非可选的,不能为nil)
2、空和运算符
空和运算符使用两个问好来表示(a ?? b)
对a
进行是否为nil的判断,如果a
不是nil
,那么久返还 a!
,否则返回b (所以,a
必须是一个可选类型,同时 b
的值类型也要和 a
一样)
空和: 是对于三目运算符来某个值是否为nil
的简写
a! == nil ? a! :b 三目 |