据我所知,默认情况下Swift函数有未命名的参数,但Swift方法没有(不包括第一个参数)。例如,给出以下定义:
func foo(a: Int, b: Int) -> Int {
return a + b
}
class MyClass {
func bar(a: Int, b: Int) -> Int {
return a + b
}
}
我必须使用未命名的参数调用foo
:
foo(10, 20) // fine
foo(a: 10, 20) // error
foo(10, b: 20) // error
foo(a: 10, b: 20) // error
我必须使用第一个未命名的参数调用bar
,并且第二个参数名为:
MyClass().bar(10, b: 20) // fine
MyClass().bar(10, 20) // error
MyClass().bar(a: 10, b: 20) // error
MyClass().bar(a: 10, 20) // error
我知道我可以使用#
符号创建任何未命名的参数,但我的问题是:有什么方法可以使bar
的两个参数都没有命名?
换句话说,我想以这样的方式声明bar
,我可以将其称为普通函数:
MyClass().bar(10, 20)
这在Swift中可行吗?如果是这样,怎么样?
答案 0 :(得分:19)
是的,您在第二个参数名称前加上_
,以使其具有匿名性:
class MyClass {
func bar(a: Int, _ b: Int) -> Int {
return a + b
}
}