首先要说明的是swift没有非零即真的概念
if let
语法
if let 新变量名 = 可选项 {
//do something
}
说明
新变量名的作用域在大括号里面
如果新变量名 有值(对可选项进行的一个解包),则运行 if后边{}里的语句
如果新变量名 没值(可选项是一个nil),则不运行 if后边{}里的语句
例子
var optionalName: String? = nil
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
guard let
语法
guard let 新变量名 = 可选项 else {
return
}
//do something
说明
新变量名的作用域在大括号外面
如果新变量名有值,则不运行 else 后边{}里的代码
如果新变量名没有值(可选项为nil),则运行 else后边的{}里的代码
例子
var optionalName: String? = nil
var greeting = "Hello!"
guard let name = optionalName else {
return
}
greeting = "Hello, \(name)"