!= nil 语句中的 Swift 选项[重复]

Posted

技术标签:

【中文标题】!= nil 语句中的 Swift 选项[重复]【英文标题】:Swift optionals inside of != nil statement [duplicate] 【发布时间】:2017-06-15 17:35:38 【问题描述】:

您是否经常使用 Swift 开发者!= nil?以下是针对可选系统的反模式吗?

var myStringArray: [String]?

if myStringArray != nil 
   textField.text = myStringArray?[0]
   // some other code related to the array being there

风格感觉不对。有人知道我可以在这里学习一种模式来改善我的风格吗?

【问题讨论】:

我更喜欢使用 if let 来检查选项上的 nil。另一方面,这个问题似乎可以作为主要基于意见的问题结束。 也可以使用guard let 一些阅读:medium.com/@mimicatcodes/…。 gaurd let 使您的未包装选项可在整个代码块中使用,而不是像 if let 那样仅在 if 块中可用。很不错! 非常感谢关于使用带有可选绑定的防护的提示 【参考方案1】:

这就是可选绑定的用途。

if let myStringArray = myStringArray 
    textField.text = myStringArray[0] // use non-nil variable

另外,请使用myStringArray.first 而不是myStringArray[0]。否则,如果数组为空,您的代码将崩溃。或者您可以添加一个计数检查:

if let myStringArray = myStringArray, myStringArray.count > 0 
    textField.text = myStringArray[0]

【讨论】:

以上是关于!= nil 语句中的 Swift 选项[重复]的主要内容,如果未能解决你的问题,请参考以下文章

选项的保护语句在 swift 中为零

Swift Xcode 致命错误:在隐式展开可选值时意外发现 nil [重复]

测试“nil”和“.None”的可选项有啥区别?

Swift:意外发现 nil [重复]

在 Swift 中,我如何避免选项和 nil 对象引用?

当内容为 nil 时,Swift 保护语句不会返回