使用可选类型(optionals)来处理值可能缺失的情况。可选类型表示:
- 有值,等于 x
或者
- 没有值
可选的概念在C和Objective-C语言中是不存在。在Objective-C中最类似可选类型的功能是一个方法将返回nil或者一个对象,返回nil意味着“缺失一个有效的对象”。然而,这只适合于对象,不适合结构体,基本的数据类型,或者枚举值。对于这些类型情况,Objective-C中的方法会返回一个特殊值(例如NSNotFound)来表示缺失一个值。这类似于假定方法调用者知道该方法返回值有一个特殊的值需要检测。
一:基本写法:
var name : Optional<String> = nil
二:语法糖:
var name : String? = nil
name = Optional("why")
name = "why"
解包:
name!强制解包取值非常危险,如果可选类型为nil,那么强制解包就会崩溃。
可选绑定:
该语法用于可选类型的取值,是我们使用起来可选类型更加方便。
if let tempName = name {
print(tempName)
}
- 判断name是否有值,如果没有值,则直接不执行{ }
- 如果name有值,那么系统会自动对可选类型进行解包,并且将解包后的结果赋值给前面的tempName
nil
- Swift的可选类型允许你不需要指定常量,可以为所有任何类型表示一个缺失值。
- 只有可选类型才能赋值为nil,其他类型不能赋值为nil。
- Swift中的nil与Objective-C中的ni不同,在Objective-C中,nil是指向一个不存在的对象的指针,而在Swift中,nil不是一个指针—它是代表一个确定类型的值的缺失。任何可选类型都可以被设置为nil,不仅仅是对象类型。
网友评论