Swift 守卫语句允许您将可选项解包为新常量,并在赋值失败时提前返回。
var someString:String? = "hello"
...
...
guard let newString = someString
else {
return
}
...
如果我想解开一个可选变量并将其设置为预定义的非可选变量,我首先解包到新常量(newString),然后在保护语句之后设置非可选变量,如下所示:
var someString:String? = "hello"
var nonOptionalString:String = "bonjour"
...
...
guard let newString = someString
else {
return
}
nonOptionalString = newString
...
有没有办法在不创建新常量的情况下在保护语句的条件内设置一个预定义的、非可选的 var? 类似于以下内容(不起作用)?
var someString:String? = "hello"
var nonOptionalString:String = "bonjour"
...
...
guard nonOptionalString = someString
else {
return
}
...
如果这样的事情是不可能的,那么 Swift 语言设计背后是否有一个基本的哲学或技术原因来解释为什么这不存在?