学习过程中看到的示例代码: var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName { greeting = "Hello, \(name)" } 我的想法: 代码不难理解,但是查找资料说 swift 中的 if 后面必须跟一个布尔型变量(或布尔表达式),资料如下  也就是说 `name = optionalName;if name {}` 是不正确的,不会将 `name` 变成 `True`,而 `if let name = optionalName` 后面只是一个创建常量并赋值的操作,不太能理解如何得出来的 `True` 补充: 我知道上面代码的意思,这个不用解释,我只是奇怪这个不符合 `if` 的语法规范,因为 swift 中的 if 后面必须要一个布尔表达式或布尔型变量,不会隐形地和 0 作比较,而后面只是个创建常量并赋值的操作,为什么会根据有值/空值自动得出 True/False?