学习了一阵swift对于optional类型一直不是很了解,为此特意学习了一下,通过观看斯坦福大学的视频,将他所讲的进行了总结

optional 有两个值

1.not set (未设)

代表这个值没有被任何人设置过, 或者  有人把他设置成了  未设 状态

我们说这个是nil , 就是未设 的意思, 就是optional 变量在  未设  状态下的值  not set

2.something  (被赋了一个值)

let digit : String?

被设置赋了一个值  , 这个值的类型就是  ? 前面那个东西代表的类型

如果问号左边的那个string 就表示,如果这个optional变量被赋了值的话,那么它的类型就是string  我们可以称它为  optional string

他确实是  optional类型的  , 他不是一个可以为nil 的String  但是他是optional 类型的  可以被赋值为String

unwrapped (解包) 这个optional类型的数据  就是  打开这个optional类型 的 数据 找到它里边的值

用  !  就可以获取到它的值

解包出现的两种情况:

如果optional 的数据 没有设置值 为nil的时候  我们进行解包操作  unwrapped  程序就会崩溃,

如果不是nil  就会得到String 或者其他类型的数据

Swift optional详解的更多相关文章

  1. OpenStack的Swift组件详解

    一:简介     一.背景 1. Swift 最初是由 Rackspace 公司开发的高可用分布式对象存储服务(Object  Storage Service),并于 2010 年贡献给 OpenSt ...

  2. [Swift]forEach详解

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  3. Swift语言的基础详解

    1.1.关于swift · Swift 是一种适用于 iOS 和 OS X 应用的全新编程语言,它建立在最好的 C 和 Objective-C 语言之上,并且没有 C 语言的兼容性限制.Swift 采 ...

  4. iOS开发——网络编程Swift篇&(八)SwiftyJSON详解

    SwiftyJSON详解 最近看了一些网络请求的例子,发现Swift在解析JSON数据时特别别扭,总是要写一大堆的downcast(as?)和可选(Optional),看?号都看花了.随后发现了这个库 ...

  5. Swift - 可选类型详解

    可选类型详解 直接上代码解释 // 类中所有的属性在对象初始化时,必须有初始化值 class Person : NSObject { var name : String? var view : UIV ...

  6. iOS开发——网络编程Swift篇&Alamofire详解

    Alamofire详解 预览图 Swift Alamofire 简介 Alamofire是 Swift 语言的 HTTP 网络开发工具包,相当于Swift实现AFNetworking版本. 当然,AF ...

  7. ios开发——实用技术OC-Swift篇&本地通知与远程通知详解

    本地通知与远程通知详解 一:本地通知   Local Notification的作用 Local Notification(本地通知) :是根据本机状态做出的通知行为,因此,凡是仅需依赖本机状态即可判 ...

  8. Swift流程控制之循环语句和判断语句详解

    Swift提供了所有c类语言的控制流结构.包括for和while循环来执行一个任务多次:if和switch语句来执行确定的条件下不同的分支的代码:break和continue关键字能将运行流程转到你代 ...

  9. Swift详解之NSPredicate

    言:谓词在集合过滤以及CoreData中有着广泛的应用.本文以Playground上的Swift代码为例,讲解如何使用NSPredicate. 准备工作 先在Playground上建立一个数组,为后文 ...

随机推荐

  1. 05_Smart-image通过SoftReference提高性能

    文章导读: 文件介绍了常见的图片下载开源插件smart-image, 由于移动设备硬件受限,因此Android的相关app都要考虑到性能的关系, 所以很多的第三方插件都使用到了缓存cache技术,本人 ...

  2. IOS 真机调试以及发布应用 1

    参考网站:http://my.oschina.net/u/1245365/blog/196263   Certificates, Identifiers &Profiles 简介 Certif ...

  3. 你好,C++(36)人参再好,也不能当饭吃!6.3 类是如何面向对象的

    6.3  类是如何面向对象的 类作为C++与面向对象思想结合的产物,作为面向对象思想在C++中的载体,它的身上流淌着面向对象的血液.从类成员的构成到类之间的继承关系再到虚函数,到处都体现着面向对象封装 ...

  4. ejabberd,erlang,简单看了一下,总结一下,很肤浅

    本来也没打算深入学习erlang,就是看一下他们的大概思路erlang每个自定义函数都能注册成进程,每个节点通过erl -name 'name@ip'.进去后,可以直接做远程调用,节点之间就靠一个连接 ...

  5. linux下 oracle常用命令

    打开图形化窗口: 1)Database Configuration Assistant windows    (添加数据库实例) $ dbca 2)Oracle Net Configuration A ...

  6. python 安装PyV8 和 lxml

    近来在玩python爬虫,需要使用PyV8模块和lxml模块.但是执行pip install xx 或者easy_install xx 指令都会提示一些错误.这些错误有些是提示pip版本过低或者缺少v ...

  7. Python 网路编程读书笔记x UDP

    UDP 协议基础 在IP网络层,所有的数据包会向一个指定的主机传输 Source IP  -> Destination IP 但是两台机器之间可能有许多独立的应用需要进行通信,因此为了区分不同的 ...

  8. 如何让div出现滚动条

    由于DIV本身属性并没有滚动条设置,但是有些地方的设计却需要出现滚动条,如何实现呢?本人采用CSS样式来控制显示!而且也很简单,代码如下: <div style="OVERFLOW-Y ...

  9. ADO.Net增、删、改、查

    数据访问 需要引用 对应命名空间:System.Data.SqlClient; SqlConnection:连接对象 SqlCommand:命令对象 SqlDataReader:读取器对象 Comma ...

  10. Points

    CF#19D:http://codeforces.com/contest/19/problem/D 题意:给你一个点,add x,y表示向集合中添加一个点,remove x,y,表示删除集合中的一个点 ...