了解 tableView 等函数中的 Swift 参数表示法
Posted
技术标签:
【中文标题】了解 tableView 等函数中的 Swift 参数表示法【英文标题】:Understanding Swift argument notation in functions like tableView 【发布时间】:2015-02-23 15:38:22 【问题描述】:我最近接触了 Swift,但有些东西我不明白。我想用单元格实现一个 tableView。我理解,但符号对我来说有点混乱。
我从 UITableViewDataSource 获得了这个功能
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return 5
你能告诉我什么是 numberOfRowsInSection 吗?他的参数部分是一个函数吗?我看到返回 Int 的函数 tableView 的名称、参数 tableView 和具有自己类型的部分。但我真的不明白 numberOfRowsInSection。
什么时候调用这个函数?
感谢您的回答。
【问题讨论】:
【参考方案1】:区别在于内部和外部参数标签。您可以使用两种不同类型的参数标签。内部使用在函数本身内部,外部使用在调用函数时使用。
tableView(tableView: UITableView, numberOfRowsInSection section: Int)
/\ /\ /\
|| || ||
internal external internal
我们举个例子函数:
func test(str:String, thisIsATest str1:String)
println(str1)//works
println(thisIsATest)//error
如您所见,我打印了 str1
值。但是你会看到,它只适用于内部参数。
但是如果你现在像这样从外部调用函数:
test("hi", str1:"hi2")
它会抛出一个错误。因为您使用 internal
参数标签。
但是如果你现在使用外部参数标签thisIsATest
,它可以工作:
test("hi", thisIsATest:"hi2")
此外,您根本不必设置外部标签,但如果您设置外部标签,您还必须为其设置内部标签。但在某些情况下,您必须设置内部标签,例如在 init()
方法中。
即使很容易提醒,我也为此做了一个小马:我将一个功能与一个公司进行比较:如果你在公司工作,并且你想打电话给也在公司工作的人,你会使用内部电话号码。但是,如果您想将公司服务用作客户(功能的用户),您可以从 external 号码拨打电话。
【讨论】:
谢谢克里斯蒂安,很清楚。这基本上是 Apple 和开发人员的命名约定,以了解该功能最后的作用是什么?我们知道函数何时被调用吗?还是被 Apple 隐藏了? “我们知道函数何时被调用”是什么意思?好吧,这与方法的命名方式无关。以上是关于了解 tableView 等函数中的 Swift 参数表示法的主要内容,如果未能解决你的问题,请参考以下文章
Tableview 中的 Swift Firebase Firestore 数据
在 tableView Swift 中使用 javascript 数据