Swift3.0基本语法(五)——封包和拆包

一、可选类型(Optional)

        相对OC而言,Swift增加一种可选类型(Optional),可选类型的含义是表示一个值可能是有值的,也有可能没有值(nil)。在OC中nil是个指针,但是在Swift中,在可选类型情况下,nil仅仅表示可选类型没有值。

可选类型

二、拆包

         1、 什么是拆包?拆包其实就是一个可选类型有值的时候,打印结果带有可选类型(Optional)标记,当我们去掉可选类型(Optional)的过程就成为拆包,例如:将Optional String类型强制转换为String类型的过程,就是一种拆包过程。

拆包过程

         2、强制拆包:当我们在进行拆包过程中,如果对可选类型(Optional)是否有值不做处理,进行拆包的过程,其实就是一种强制拆包的过程,如果某一个可选类型(Optional)没有值,而我们又进行强制拆包的操作,就会崩溃,报错提示如下:

fatal error: unexpectedly found nil while unwrapping an Optional value

强制拆包


      3、正确的拆包方式

           首先我们需要对可选类型(Optional)是否有值进行判断,如果可选类型(Optional)有值,可以进行拆包,如果可选类型(Optional)没有值,则不能进行拆包工作,一般使用 if - else语句来判断。

正确拆包方式

三、封包

          什么是封包?简单来就是将一种确定的数据类型转换为可选类型(Optional)的过程,我们称之为封包。例如:将String类型转换为Optional String类型的过程,其实就是一种封包过程。

          封包一般分显式封包和隐式封包,如下图:

封包
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,880评论 1 10
  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 3,301评论 3 25
  • 126.析构器 在一个类实例销毁前,一个析构器会立即调用。使用deinit 关键字来表示析构器, 跟构造器写法类似...
    无沣阅读 840评论 0 4
  • 如何让你爱上我 我已在佛前求了五百年 求他让我们结一段尘缘 佛于是把我化作一棵树 长在你必经的路旁 阳光下慎重地开...
    彭小刀阅读 368评论 0 2
  • 感觉到已经有后悔的事情发生了,但是,暂时没有办法啦…
    映画阅读 177评论 1 1