如果让声明和选项在swift中

时间:2017-01-03 14:25:48

标签: swift

我在Optionals的上下文中有一个关于'if let'语句的问题。

基本上,我认为if语句就像这样 'if(true){(此语句将执行)} if(false){(此语句不会执行)}

但是在'if let'语句中,它不像上面那样工作。

以下是代码:

var isDeleted: Bool?
isDeleted = false
if let deleted = isDeleted { print(deleted) }

在上面的代码中,也许你知道'let deleted = isDeleted'返回'false' 但是,'print(deleted)'已成功执行 有谁知道为什么?

1 个答案:

答案 0 :(得分:2)

你的第一行声明了一个可选的布尔值。这没有价值。 下一行将isDeleted(可选的布尔值)设置为false。

我认为你所困惑的是if let语句的作用。

将其视为安全的声明。

考虑这行代码:

let deleted = isDeleted

如果您使用此代码代替if let语句,它将运行得很好。但如果你从未初始化isDeleted,你的应用程序就会崩溃。

在更高级的场景中,您可能不知道该值是否已初始化,以及if允许的位置。

如果let语句没有错误,那么括号内的代码将被执行,并且将声明和初始化临时变量(在这种情况下"删除")。

如果出现错误,您的应用不会崩溃,括号内的代码也不会运行。

希望这有帮助。