Swift笔迹<六>可选类型

可选类型

什么是可选类型呢?一个变量要么有值,要么没有值。
那么为什么产生可选类型呢?比如在OC中基本数据如果不赋值都会存在默认值,所以不会产生没有值得情况,但是没有值和默认值是完全不同的两个概念所以Swift中引入了"可选类型的概念",来区分有值和没有值两种情况

定义可选类型
  • 可选类型也是一种类型
  • swift中nil 不同于oc中的nil,oc中的nil为一个特殊的地址,swift中nil就是一个特殊含义的字符,表示没有值
  • 只有可选类型才能赋值为nil
  • 可选代表含义是:可能有值,也可能没有值
  • 非可选代表无论在哪里,什么时候都有值
//var num: Optional = 2
var num: Int? = 3
取出可选类型的值
  • ! 强制解包(可选类型相当于包装了一种类型的一种类型,解包就是取出这个类型)强制从麻袋里取出东西要求是肯定可以取出东西
 var num :Int? = 0
 //因为num为可选类型可能被赋值为nil,而解包后为非可选肯定得有值不能为nil,所以得进行判断否则会崩溃
 //1.第一种写法
 if num != nil{
    num! +1
 }
//2.可选绑定:首先判断num,如果是nil那么if后面的值 = false;如果不等于nil ,if后面的值为true,还会把num强制解包并赋值给result
 if let result = num{
    result +1
 }
//3.在方法里时
func check (score:Int?){
 guard let s = score else{
 print ("空")
 return
}
s+1
s*5
} 
  • 当保证用的时候可选类型一定有值时也可以在后面+!

你可能感兴趣的:(Swift笔迹<六>可选类型)