gpt4 book ai didi

swift - 检查是否为零后强制展开?

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:09 25 4
gpt4 key购买 nike

这样做是否被认为是不好的做法

我正在检查数组是否为 nil,然后强制解包以从数组中检索元素。我这样做是为了避免创建不必要的 if let 变量。

if self.arrayOfStrings != nil{
textLabel.text = self.arrayOfStrings![0]
}

最佳答案

是的,这是不好的做法。也许不是在这种情况下,但有可能其他线程可以更新该属性并在该线程检查 nil 然后强制展开之间将其设为 nil。

只是做:

if let arrayOfStrings = self.arrayOfStrings {
textLabel.text = arrayOfStrings[0]
}

这里没有不必要的变量,因为您实际上在 if let 中使用了变量。

当然,在尝试获取可选数组的第一个值的这种非常特殊的情况下,您可以简单地执行以下操作:

textLabel.text = self.arrayOfStrings?.first

如果你真的想要索引 0 以外的东西,你应该检查索引:

if let arrayOfStrings = self.arrayOfStrings, someIndex < arrayOfStrings.count {
textLabel.text = arrayOfStrings[someIndex]
}

在这些情况下,“额外”变量都不是浪费精力或内存。它以只读方式用作常量,Swift 足够聪明,不会在此过程中创建数组的完整副本。

关于swift - 检查是否为零后强制展开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51599310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com