在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Optional类型表示: 有值 / 没有值在Objective-C中并没有Optional类型, 只有nil,并且nil只能用于表示对象类型无值, 并不能用于基础类型(int, float),枚举和结构体,基础类型需要返回类似NSNotFound的特殊值来表示无值, 所以在Swift中定义了Optinal类型来表示各种类型的无值状态,并规定了nil不能用于非可选的常量和变量,只能用于Optinal类型 先看一下基本的用法:
在if语法中的用法使用 if 语句和 nil 来判断一个Optional类型是否有值
可选绑定( optional binding )使用optional binding来判断optional类型是否有值,并且如果有值就把值赋给一个常量或者临时变量。 optional binding可以用在 if 和 while 语句中:
强制解析/解包 ( forced unwrapping )当确定可选类型确实包含值之后,可以在可选的名字后面加一个感叹号( ! )来获取值; 当Option == nil时,使用 ! 来获取会导致运行时错误。所以使用 ! 来强制解析值之前,一定要确定Option类型不是nil的 隐式解析可选类型 ( implicitly unwrapped optionals )有时候在编写程序中,一个optional类型第一次被赋值后,可以确定它以后总会有值, 在这种情况下,使用它时每次都还需要判断和解包optional类型是非常低效的,因为可以确定它总会有值, 所以Swift中定义了一个隐式解析可选类型,它在使用时可以自动解析; 把( String? )改成感叹号( String! )就可以声明一个隐式解析可选类型。
但是需要注意:
可以理解为隐式解析可选类型用于声明初始化时可能为nil,但之后会立刻被赋值,并且不会再变成nil的Optional类型对象 |
请发表评论