在SWIFT引用中的下划线代表是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (28)

在Apple文档的参考部分,有很多这类东西的实例:

func runAction(_action: SKAction!)

目标-C‘相当于’是:

- (void)runAction:(SKAction *)action

我觉得(在SWIFT引用中)在下划线和“action”后面用斜体写空格可能很重要。

更新

SWIFT 3对函数/方法参数名称和参数标签的使用和命名方式做了一些更改。

提问于
用户回答回答于

中的第一个参数名。方法默认情况下,一个本地参数名,并给出第二个参数名和随后的参数名称。本地和外部参数名称默认情况下。

另一方面,函数在默认情况下不具有外部参数名。

例如,我们有foo()类中定义的方法Bar:

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

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

,则可以通过以下方法重写此行为:_在前面s2在那里被宣布。

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

然后,当你调用foo,可以简单地称为bar.foo("Hello", "World"),没有第二个参数的名称。

runAction是一种方法,因为它与类型关联。SKNode很明显。因此,将_前参数action允许你调用runAction没有外部名称。

SWIFT 2.0的更新

功能和方法现在起作用了同样的方式在本地和外部参数名称声明方面。

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

所以,通过提供一个_在一个功能,调用方将不必指定外部参数名称,就像对方法

用户回答回答于

在这种特殊情况下,这意味着函数将被调用为runAction(argument)而不是runAction(action:argument)

在其他情况下,它具有其他类似的含义,例如:

for _ in 0..<5 { ... }

这意味着我们只想执行5次块,而不关心块中的索引。

在这方面:

let (result, _) = someFunctionThatReturnsATuple()

扫码关注云+社区