码迷,mamicode.com
首页 > 编程语言 > 详细

Swift 总结使用问号(?)和感叹号(!)-备用

时间:2016-05-03 10:49:00      阅读:1463      评论:0      收藏:0      [点我收藏+]

标签:

在使用可选类型和可选链时,多次使用了问号(?)和感叹号(!),但是它们的含义是不同的,下面我来详细说明一下。 

1. 可选类型中的问号(?)

声明这个类型是可选类型,访问这种类型的变量或常量时要使用感叹号(!),下列代码是显示拆包:

 

 
  1. let result1: Double? = divide(100, 200)    
  2.   
  3. print(result1!)     


    

 

 

 

2. 可选类型中的感叹号(!)

声明这个类型也是可选类型,但是访问这种类型的变量或常量时可以不使用感叹号(!),下列代码是隐式拆包:

 

 
  1. let result3: Double! = divide(100, 200)   
  2.   
  3. print(result3)   


     

 

 

 

3. 可选链中的感叹号(!)

多个实例具有关联关系,当从一个实例引用另外实例的方法、属性和下标等成员时就会形成引用链,由于这个“链条”某些环节可能有值,也可能没有值,因此需要采用如下方式访问:

 

 
  1. emp.dept!.comp!.name   


 

 

 

4. 可选链中的问号(?)

在可选链中使用感叹号(!)访问时,一旦“链条”某些环节没有值,程序就会发生异常,我们把感叹号(!)改为问号(?),代码如下所示:

 

 
  1. emp.dept?.comp?.name  


 

 

 

这样某些环节没有值的时候返回nil,程序不会发生异常。

Swift 总结使用问号(?)和感叹号(!)-备用

标签:

原文地址:http://www.cnblogs.com/isItOk/p/5454046.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!