我正在从Objective-C转换到Swift,并且一直在为可选绑定编写以下代码,
if let tempX = X {
}
我的问题是我必须经常这样做,以至于我每次都需要找到一个新名称。避免为代码中的每个可选X设置新名称tempX的方法是什么?不会有工作吗?
if let X = X {
}
答案 0 :(得分:2)
是的,您可以在此类绑定中重复使用相同的标识符。但请注意,重新定义的非可选X
只会在if
范围内显示。
但是如果你使用guard
语句,新的X
可以影子前一个变量(即,如果先前的变量是在另一个范围内定义的;否则将触发一个编译器错误)。有人会说这可能会损害您的代码可读性。
有关详细信息,请参阅this related question。
答案 1 :(得分:1)
新常量仅在if let的范围内定义,因此一旦范围结束,你的tempX就会消失。这也意味着您可以在if let范围内重用名称。
if let X = X {
}