ios - Swift 可选值和 if let 语句

标签 ios swift

我正在比较以下代码片段:

var num = Int(numTextField.text!)!

if let num = Int(numTextField.text!) {}

谁能给我解释一下 if left 语句为什么不需要第二个“!”。 if let block 中的赋值是否隐式解包 Int 可选?如果确实如此,谁能解释其中的机制?

提前致谢!

最佳答案

当你这样做的时候

if let num = Int(numTextField.text!){}

它会为你打开值并检查它是否可以将文本字段的值设置为 num。如果值为 nil,您将能够像这样处理错误

if let num = Int(numTextField.text!){
    print("Yes the value is not nil")
}else{
    print("Couldn't assign value to num because it's nil")
}

如果你这样做

var num = Int(numTextField.text!)!

如果文本字段为 nil,您将收到运行时错误并且您的应用程序将崩溃。

关于ios - Swift 可选值和 if let 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37471329/

相关文章:

ios - UILabel 高度取决于文本

ios - 改变不同变量的动画回调

SwiftUI macOS 命令(菜单栏)和 View

swift - 使用自动布局设置 UIView 高度以适合 UILabel subview

ios - 场景套件 : how to update SCNGeometrySource

ios - 如何使用ios的parse更新User类中的字段?

ios - 4 英寸 iPhone 中的 uitableviewcell uiimage 自动布局问题

ios - 在选择器 View swift 1.2 中更改选定的行标签颜色

ios - 如何在服务器中配置套接字 io 以从 ios 套接字获得确认(SocketIO 回调)

ios - 响应 PHPhotoLibraryChangeObserver 事件后更新选定的 collectionview 索引