这样做是否被认为是不好的做法
我正在检查数组是否为零,然后强制展开以从数组中检索元素。我这样做是为了避免创建不必要的 if let 变量。
if self.arrayOfStrings != nil{
textLabel.text = self.arrayOfStrings![0]
}
Run Code Online (Sandbox Code Playgroud)
是的,这是不好的做法。也许不是在这种情况下,但其他线程可能会更新该属性,并在该线程检查nil和强制展开之间将其设置为零。
做就是了:
if let arrayOfStrings = self.arrayOfStrings {
textLabel.text = arrayOfStrings[0]
}
Run Code Online (Sandbox Code Playgroud)
这里没有不必要的变量,因为您实际上在if let.
当然,在尝试获取可选数组的第一个值的这种非常特殊的情况下,您可以简单地执行以下操作:
textLabel.text = self.arrayOfStrings?.first
Run Code Online (Sandbox Code Playgroud)
如果你确实想要索引 0 以外的东西,你应该检查索引:
if let arrayOfStrings = self.arrayOfStrings, someIndex < arrayOfStrings.count {
textLabel.text = arrayOfStrings[someIndex]
}
Run Code Online (Sandbox Code Playgroud)
在这些情况下,“额外”变量都不是浪费精力或内存。它作为常量以只读方式使用,并且 Swift 足够聪明,不会在此过程中创建数组的完整副本。
| 归档时间: |
|
| 查看次数: |
1112 次 |
| 最近记录: |