从苹果公司发布的Swift书中我们可以通过推出可选价值?变量如
var optionalString: String? = "Hello"
optionalString == nil
Run Code Online (Sandbox Code Playgroud)
并且还写道:"你可以使用if和let together来处理可能缺失的值."
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
Run Code Online (Sandbox Code Playgroud)
上面写的代码用于检查可选值是否为nil,如果optionalName为nil,则不会进入.
但是可以在不使用let的情况下完成相同的操作
if optionalName {
greeting = "Hello, \(optionalName!)"
}
Run Code Online (Sandbox Code Playgroud)
为什么在书中建议使用let?
das*_*ght 14
您的第二个代码段在功能上等同于本书中的代码段.但是,本书建议使用let以避免多次展开可选值.
由于您要检查是否optionalName为空,因此可以安全地假设您计划在条件块中使用它.当你这样做时,Swift需要再次打开可选值optionalName,因为变量仍然是可选的.
当你在声明中分配optionalNameto name时,你得到let的name常量不是可选的.这可以节省您在if语句中的解包.
| 归档时间: |
|
| 查看次数: |
4709 次 |
| 最近记录: |