文档中的 Swift 方法参数

标签 swift

我有时会看到 Swift 方法记录为 application(_:didFinishLaunchingWithOptions:)tableView(_:cellForRowAtIndexPath:)。这些通用方法文档约定记录在哪里?例如:我在哪里可以看到下划线的含义,如何解释以这种方式记录的多个方法参数等。

最佳答案

约定在 The Swift Programming Language: Functions 中说明。 .这是函数的外部签名,即调用它需要知道的内容。它由函数名称以及该函数所有参数的所有参数标签组成。

考虑

func greet(person: String) -> String {
    ...
}

这是 greet(person:) 函数。

但请考虑以下稍微复杂的 Swift 3 UITableViewDataSource方法:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    ...
}

这里,这两个参数中的每一个都有一个参数标签(调用函数时使用的),后跟参数名称(用于在函数本身内部引用该参数的名称)。在这种情况下,第一个参数没有参数标签(由 _ 指定),但名称是 tableView。第二个参数的参数标签是cellForRowAt,名称是indexPath

在这种情况下,您会看到上面的 UITableViewDataSource 方法被引用为 tableView(_:cellForRowAt:) : 函数名为tableView,第一个参数没有实参标签(用_指定),第二个参数有实参标签cellForRowAt.


顺便说一句,在 Swift 版本 2 中,第一个参数的参数标签将默认为 _(即没有标签),除非另有明确说明。 Effective Swift 3,第一个参数与所有其他参数一样工作,默认为任何参数名称(这就是为什么你会看到 _ 在这种情况下明确引用,明确指定这个Swift 3 函数的第一个参数没有标签)。

关于文档中的 Swift 方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30293961/

相关文章:

ios - Swift 和 Spawning 对象的评分方法

swift - 扩展函数要求返回类型而不是参数

swift - AVPlayerItemDidPlayToEndTime 永远不会到达 Swift 3 上的选择器

ios - 耗时操作前 View 不出现

ios - 奇怪的 SpriteKit 循环错误

ios - 我可以在任意 UIView 变量上设置动画吗?

c# - 一个容器 View 上的多个 View

ios - 如何在 Swift 中获取 iPhone 当前的俯仰、偏航和横滚?

swift - 循环时为空字符

ios - 如何使用 UIGestureRecognizerDelegate?