Swift可选绑定常量名

时间:2017-03-29 13:35:06

标签: swift optional-binding

我正在从Objective-C转换到Swift,并且一直在为可选绑定编写以下代码,

if let tempX = X {

}

我的问题是我必须经常这样做,以至于我每次都需要找到一个新名称。避免为代码中的每个可选X设置新名称tempX的方法是什么?不会有工作吗?

if let X = X {

}

2 个答案:

答案 0 :(得分:2)

是的,您可以在此类绑定中重复使用相同的标识符。但请注意,重新定义的非可选X只会在if范围内显示。

但是如果你使用guard语句,新的X可以影子前一个变量(即,如果先前的变量是在另一个范围内定义的;否则将触发一个编译器错误)。有人会说这可能会损害您的代码可读性。

有关详细信息,请参阅this related question

答案 1 :(得分:1)

新常量仅在if let的范围内定义,因此一旦范围结束,你的tempX就会消失。这也意味着您可以在if let范围内重用名称。

if let X = X {

}