有人能向我解释一下“if let”的说法是什么?

时间:2016-09-17 01:30:15

标签: swift

我是Swift的新手。我从未用Swift编写代码。事实上我所有的编码都是网站; HTML,CSS,Javascript。我正在寻找一个基本的,愚蠢的回答“if let声明做了什么?”我知道这可能听起来很蹩脚,但我到处都看,似乎找不到足够的解释;甚至不是苹果网站。

2 个答案:

答案 0 :(得分:7)

let x = y声明一个新的常量x并将其初始化为y的值。 if let x = y说“如果y有一个非零的值来初始化,则声明一个新的常量x初始化为该值”。

所以这是一个简写:

if y != nil {
    let x = y!
    ...
}

答案 1 :(得分:0)

if let就是所谓的可选绑定。要理解它,首先必须了解选项。

可选是一个可以包含值或nil的变量。

使用问号声明可选变量:

var a:Int?

以下是使用可选绑定的一些代码:

var string1: String?

if let string2 = string1 {
  print("string2 = \(string2)")
}

“if let”表达式表示“如果等号右侧的表达式不是nil,则创建一个新的常量string2,打开可选项,并将其值放在string2中。

使用上面的代码,不会打印任何内容,因为string1包含nil。

然而,介于两者之间:

var string1: String?
string1 = "foo"
if let string2 = string1 {
  print("string2 = \(string2)")
}

然后执行print语句。

我建议下载Apple的Swift书并阅读介绍性章节。