在苹果文档的参考部分,有很多这样的例子:

func runAction(_101: SKAction!)

这一目标的C"类似功能"是:

- (void)runAction:(SKAction *)101

让我印象深刻的是,(在Swift引用中)下划线和"action"后面用斜体写一个空格可能很重要.

但我不明白这是在传达什么.所以也许问题是...参考文献中使用的约定是否有参考文献?

--以下是我在引用下划线用法时引用的页面:

使现代化

Swift 3对函数/方法参数名称和参数标签的使用和命名方式进行了一些更改.这对这个问题及其答案有影响@Rickster在回答关于函数中的_下划线的另一个问题方面做得非常出色,它可以清除很多问题,这里是:Why do I need underscores in swift?

推荐答案

两个答案都是正确的,但我想澄清一点.

_习惯于modify external parameter name behavior for methods.

在文件的第Local and External Parameter Names for Methods节中,它说:

Swift默认为method中的第一个参数名指定一个本地参数名,默认为第二个和后续参数名both local and external parameter names.

另一方面,默认情况下,函数没有外部参数名.

例如,我们在Bar类中定义了这个foo()方法:

class Bar{
    func foo(s1: String, s2: String) -> String {
        return s1 + s2;
    }
}

当你拨打foo()时,它被称为bar.foo("Hello", s2: "World").

But,可以通过在s2前面声明_来覆盖该行为.

func foo(s1: String, _ s2: String) -> String{
    return s1 + s2;
}

然后,当你调用foo时,它可以像bar.foo("Hello", "World")一样简单地调用,而不需要第二个参数的名称.

回到你的例子,runAction是一种方法,因为它显然与SKNode型相关.因此,将_放在参数action之前,可以在没有外部名称的情况下调用runAction.

Update for Swift 2.0

函数和方法现在可以在本地和外部参数名称声明方面工作the same way次.

现在,从第二个参数开始,默认情况下使用外部参数名调用函数.此规则仅适用于纯Swift代码.

因此,通过在function前面提供_,调用者将不必指定外部参数名,就像method一样.

Swift相关问答推荐

在swiftUI中测试取决于网络请求的Observer对象类的单元

数据不会被ARC删除在swift'

如何访问用户选定目录下的(只读)文件?

SwiftUI正在初始化不带状态变量的绑定变量

通常从数组调用的SWIFT静态协议函数

使用 @resultBuilder 的通用 buildList 函数

关闭 SwiftUI TabView 中的子视图

根据其属性组合 2 个模型以在 Swift 中创建另一个模型

将 Encodable 扩展添加到 Swift 嵌套枚举

SwiftUI:按钮的圆形边缘的边框尺寸加倍

防止带有背景的文本扩展到 maxWidth

如何获得不同的插入和移除过渡动画?

Reality Composer Tap Trigger 问题

找不到目标AAA的 SPM 工件 - 仅限 Xcode 13.3

UnkeyedEncodingContainer 和 KeyedEncodingContainerProtocol 中的 superEncoder 是什么?

如何从 Button 获取标签名称?

在 Swift 框架中加载资源(例如故事板)

将活动指示器 colored颜色 更改为黑色

使用相机进行人脸检测

如何在 Swift 中判断变量的类型