Swift选项和if语句

时间:2016-05-26 21:29:34

标签: ios swift

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

var num = Int(numTextField.text!)!

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

有人可以向我解释if if语句如何不需要第二个"!"。 if let块中的赋值是否隐式解包Int可选?如果有,任何人都可以解释工作中的机制吗?

提前致谢!

1 个答案:

答案 0 :(得分:12)

当你这样做时

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

它将为您解包该值并检查它是否可以将textfield的值设置为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!)!

并且textfield为nil,您将收到运行时错误,您的应用程序将崩溃。