0

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

if let tempX = X {

}

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

if let X = X {

}
4

2 回答 2

2

是的,您可以在此类绑定中重用相同的标识符。但请记住,重新定义的、非可选的X只会在if范围内可见。

但是如果你使用一个guard语句,newX可能会影响前一个变量(即,如果前一个变量是在另一个作用域中定义的;否则会触发编译器错误)。有人会说这可能会损害您的代码可读性。

有关详细信息,请参阅此相关问题

于 2017-03-29T13:38:48.520 回答
1

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

if let X = X {

}
于 2017-03-29T13:39:03.233 回答