Swift语法解释

时间:2017-09-18 03:05:13

标签: ios swift

我是Swift编程的新手。在查看有关搜索栏的信息时,我看到了以下声明。任何人都可以向我解释这是什么意思,因为我找不到任何相关信息。

func updateSearchResults(for searchController: UISearchController) {
    if let searchText = searchController.searchBar.text, !searchText.isEmpty {
        filteredNFLTeams = unfilteredNFLTeams?.filter { team in
            return team.lowercased().contains(searchText.lowercased())
        }
    } else {
        filteredNFLTeams = unfilteredNFLTeams
    }
    tableView.reloadData()
}

以下是我的问题:

  1. 1searchController.searchBar.text,!searchText.isEmpty1 - 什么是","在这个声明中?

  2. in..return - 如何使用它?

  3. 我为任何困惑道歉,因为我甚至不知道该怎么问。

1 个答案:

答案 0 :(得分:0)

Swift if / guard语句可以在运行其代码块之前一次检查多个条件。用逗号分隔条件。在这种情况下,searchController.searchBar.text必须具有值(将分配给searchText),并且文本字段不能为空。如果其中任何一个不成立,if块内的代码将不会运行。但是,这必须与条件

中的let语法结合使用

in是此处使用的闭包语法的一部分。闭包很像函数,但它可以传递并分配给变量等。您可以看到有关闭包语法here

的语法的更多信息