两种答案都是正确的,但我想澄清一点。
_用于修改方法的外部参数名称行为。
在文档的“
方法的本地和外部参数名称”部分中,它表示:
Swift 默认为 方法中 的第一个参数名称提供一个本地参数名称,默认情况下为第二个及后续参数名称 提供本地和外部参数名称 。
另一方面,默认情况下,函数没有外部参数名称。
例如,我们
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显然与type相关联。因此,放置一个
_before参数
action可以使您
runAction无需外部名称即可进行调用。
Swift 2.0更新
现在,函数和方法在局部和外部参数名称声明方面的工作 方式相同 。
现在,默认情况下通过使用外部参数名称(从第二个参数开始)来调用函数。该规则仅适用于纯Swift代码。
因此,通过
_在 函数 前面提供,调用者将不必指定外部参数名称,就像您对 method 所做的一样。



