swift,未解析标识符的使用
我有一个swift密码swift,未解析标识符的使用,swift,swift3,Swift,Swift3,我有一个swift密码 if(pendingComboOperation == nil){ if(accumulator != nil){ let descPart2 = symbol + String(accumulator!) } else { let descPart2 = "" } } else { let descPart2 = symbol + addBrackets(to: pendingComboOpera
if(pendingComboOperation == nil){
if(accumulator != nil){
let descPart2 = symbol + String(accumulator!)
}
else {
let descPart2 = ""
}
}
else {
let descPart2 = symbol + addBrackets(to: pendingComboOperation!.descPart2)
}
pendingComboOperation = PendingComboOperation(descPart1: description!, descPart2: descPart2)
并且有一个错误:
使用未解析标识符“descPart2”
为什么??我该如何修复它呢?您不能在
if
或else
语句中声明变量。解决方案是给descPart2
一个默认值:
var descPart2: String
if(pendingComboOperation == nil){
if(accumulator != nil){
descPart2 = symbol + String(accumulator!)
} else {
descPart2 = ""
}
} else {
descPart2 = symbol + addBrackets(to: pendingComboOperation!.descPart2)
}
pendingComboOperation = PendingComboOperation(descPart1: description!, descPart2: descPart2)
如果在块内声明变量,则在块外将不可用。对您来说,这意味着:在if语句之前声明
descPart2
,然后在内部使用它。@creator0r您可以接受我的答案(单击复选标记)如果它对您有效。只要声明没有初始值的变量就足够了。让descPart2:String
如果所有代码路径在使用前都指定了一个值。@MartinR感谢您的反馈。我将更新我的帖子。不要与nil
进行比较,只会强制展开