两个答案都是正确的,但我想澄清一点.
_
习惯于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一样.