11.可选类型(间接拆包)

来源:互联网 发布:淘宝促销活动报名 编辑:程序博客网 时间:2024/06/10 12:34

optional表示一个常量或者变量没有值的这种情况,我们用if语句来判断,用binding语句来访问它的值,有时候,一个程序中,一个optional一定是有值的,这时候我们就不需要用if语句来check它,我们几乎可以假定这个是一定有值的,这种类型叫做间接拆包,如:

let 彩票 : String! = "5"//这样就不需要对他进行if判断和拆包工作,可以直接打印他的值print("此次彩票中奖金额是\(彩票)")

也可以用if let 来获取

if let 临时金额 = 彩票 {    print("此次彩票中奖金额是\(彩票)")//不需要打感叹号可以直接访问}
  • 使用场景:在确定每一次给的值都是存在的,这种情况可以用间接拆包,主要用处会用到类的初始化,为什么这样用,因为一个类的初始化,在初始化的过程中的属性是另外一个类,这样的话除了要用到普通的optional类型外,还要用到一个拆包的工作,这样就造成了强制引用的问题,所以为了避免这种强制引用的问题,所以类似这种类的初始化中,就要用到间接拆包

  • 使用普通optional和拆包optional的区别是需要检查这个值有可能为nil的时候,如果一直是有值的,就用间接拆包类型.

0 0
原创粉丝点击