可选类型的定义
- 如果有值,就是这个值。
- 如果没值自动至为nil。
可选类型使用具有安全性
- 在编译阶段就检查
- 如果类型可选类型,无值,同时用这个值调用某个方法,就会报错。不会运行在报错。(第一要求解包,第二解包的值不为nil)
NSString *stockCode = [self findStockCode:@"Facebook"]; // nil is returned
NSString *text = @"Stock Code - ";
NSString *message = [text stringByAppendingString:stockCode]; // runtime error
NSLog(@"%@", message);
可选类型的使用
- 所以Swift中是推荐先检查可选类型是否有值, 然后再进行解包的!
下面例子不推荐使用(未使用可选绑定)
var stockCode:String? = findStockCode("Facebook")
let text = "Stock Code - "
if stockCode {
let message = text + stockCode!
print(message)
}
下面例子推荐使用(使用了可选绑定)
- if let
或者
if var`是可选绑定的两个关键字,使用可选绑定来检查可选类型的变量有值还是没值. 如果有值, 解包它并且将值传递给一个常量或者变量.
let text = "Stock Code - "
if var stockCode = findStockCode("Apple") {
let message = text + stockCode
print(message)
}
http://www.cocoachina.com/swift/20160810/17330.html?utm_source=tuicool&utm_medium=referral