在学习UItableView时,我遇到了以下功能:
func tableView(_ tableView: UITableView, ....
我从未在变量部分遇到过使用其自身名称的函数。
有人可以向我解释吗?
答案 0 :(得分:1)
在您的函数中,第一个tableView
是函数的名称,第二个是为其参数之一赋予的名称。
一个简单的函数可以声明如下:
func
(
:
,然后是其类型,所有参数名称都用逗号,
分隔)
如果此函数返回一个值,则:
->
,它只是-和> 打开大括号{
return
关键字,后跟要返回的值。}
这将定义此功能的 签名 :从另一个功能中构成一个功能的原因是 - 它的名字, -参数的数量和名称及其类型, -及其返回类型。
(我们可以添加它所属的对象,无论是否抛出,……)
这是一个使用String
并返回另一个函数的示例。您可以在Xcode的游乐场中尝试它:
//Declare the function
func sayHiTo(person: String) -> String {
let greeting = "Hello " + person
return greeting
}
//Invoke it
sayHiTo(person: "Sara") //"Hello Sara"
您能看到我们如何在最后一行:sayHiTo(person: "Sara")
中调用该函数吗?要调用函数,请按照以下步骤操作:
2.
相同)(
:
,然后是其类型。如果我们想在不声明name参数的情况下调用函数,则可以在参数名称之前使用_
:
func laugh(_ s: String) -> String {
return s + s
}
laugh("Ha") //HaHa
如果参数名称与函数名称相同,则不会出错:
func name(name: String) {
print(name)
}
name(name: "Katie") //prints Katie in the console
现在,让我们看一下这个函数签名:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
如您所见,
tableView
是函数的名称tableView
是第一个参数的名称_
表示调用此函数时无需提及参数名称UITableView
是第一个参数的类型cellForRowAt
是第二个参数的外部名称 indexPath
是第二个参数的内部名称 IndexPath
是第二个参数的类型-> UITableViewCell
表示此函数返回类型为UITableViewCell
的实例您可能会问的一个问题:为什么要使用相同名称的函数和参数?答案是:
根据惯例,所有数据源都在UITableViewDataSource
中起作用。使用Xcode自动完成功能更容易记住,并且变得更加方便。
此外,引用您正在使用的tableView确实很有帮助,并且该参数的名称没有tableView
清晰。