据我所知,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
我明白,我可以使用#符号命名任何未命名的参数,但我的问题是:有什么办法可以使两个参数禁止未命名?
换句话说,我想以这样的方式声明吧,我可以像普通的函数一样称之为吧:
MyClass().bar(10,20)
这是否可能在斯威夫特?如果是这样,怎么样?
是的,你使用_将第二个参数名称作为前缀,使其为匿名的:
class MyClass { func bar(a: Int,_ b: Int) -> Int { return a + b } }