if(变量赋值)语法查询(Swift)
if (variable assignment) syntax query (Swift)
我对这行到底是什么感到困惑,
if let fileList = fileList, let files = fileList.files
正在做。如果我理解正确的话,一个条件语句只能有一个布尔值作为它的参数,所以
let fileList = fileList, let files = fileList.files
应该是真或假。该语法的具体作用是什么?
func updateDisplay() {
updateButtons()
if let fileList = fileList, let files = fileList.files {
if files.count == 0 {
output?.text = "Folder is empty"
table?.isHidden = true
} else {
table?.isHidden = false
table?.reloadData()
}
}
else {
output?.text = ""
table?.isHidden = true
}
}
if let fileList = fileList, let files = fileList.files {
实际上是一个带有“null”测试的赋值语句。如果赋值成功,则执行大括号内的代码。 swift 中是否相等的布尔测试是 ==
.
if 语句中使用的let a = b
语法称为可选绑定。您可以阅读更多相关信息 here。本质上,如果 b
为 nil,则条件被视为“假”。如果 b
不是 nil,则条件被视为“真”,非可选常量 a
现在将具有 b
所具有的值,您可以在 if 中使用它阻止。
Swift if 语句还允许您指定多个条件。对于要执行的 if 块,它们都必须为“真”。这些条件不必是布尔表达式。它们可以是以下任何一项:
- 布尔表达式
- 可选绑定
#available
检查
case
模式匹配
如果你有两个布尔表达式,并且你想 运行 一些代码,如果它们都为真,你 可以 使用 &&
加入它们在一起,但如果您有 2 个要绑定的可选值,或一个布尔表达式和一个可选绑定,或以上的任意组合,则需要使用逗号分隔条件。
我对这行到底是什么感到困惑,
if let fileList = fileList, let files = fileList.files
正在做。如果我理解正确的话,一个条件语句只能有一个布尔值作为它的参数,所以
let fileList = fileList, let files = fileList.files
应该是真或假。该语法的具体作用是什么?
func updateDisplay() {
updateButtons()
if let fileList = fileList, let files = fileList.files {
if files.count == 0 {
output?.text = "Folder is empty"
table?.isHidden = true
} else {
table?.isHidden = false
table?.reloadData()
}
}
else {
output?.text = ""
table?.isHidden = true
}
}
if let fileList = fileList, let files = fileList.files {
实际上是一个带有“null”测试的赋值语句。如果赋值成功,则执行大括号内的代码。 swift 中是否相等的布尔测试是 ==
.
if 语句中使用的let a = b
语法称为可选绑定。您可以阅读更多相关信息 here。本质上,如果 b
为 nil,则条件被视为“假”。如果 b
不是 nil,则条件被视为“真”,非可选常量 a
现在将具有 b
所具有的值,您可以在 if 中使用它阻止。
Swift if 语句还允许您指定多个条件。对于要执行的 if 块,它们都必须为“真”。这些条件不必是布尔表达式。它们可以是以下任何一项:
- 布尔表达式
- 可选绑定
#available
检查case
模式匹配
如果你有两个布尔表达式,并且你想 运行 一些代码,如果它们都为真,你 可以 使用 &&
加入它们在一起,但如果您有 2 个要绑定的可选值,或一个布尔表达式和一个可选绑定,或以上的任意组合,则需要使用逗号分隔条件。