我正在比较以下代码片段:
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/