Oss*_*sir 2 if-statement ios swift
为什么in then子句name被解析为变量,但是在else第I节中我得到错误:
Use unresolved identifier 'name'
代码:
var optionalName: String? = "Peter"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
else {
greeting = "Hello, \(name)"
}
Run Code Online (Sandbox Code Playgroud)
因为它是可选绑定的工作方式.
name获取初始化并仅在optionalName不为空时分配.
如果optionalName是nil,你进入else分支,你已经知道它optionalName是空的.
从官方书籍:
如果是可选值
nil,则条件为false,并跳过大括号中的代码.否则,将解包可选值并将其分配给常量let,这使得在代码块内可用的展开值可用.
| 归档时间: |
|
| 查看次数: |
3023 次 |
| 最近记录: |