如果我有以下代码,为什么我不需要在函数调用中使用参数名称,而是在我尝试添加它时引发错误?
func foo(bar: Any) {}
var faz = foo
foo(1) // Missing argument label 'bar:' in call
foo(bar: 1)
faz(1)
faz(bar: 1) // Extraneous argument label 'bar:' in call
当您将方法指定为闭包时,您只需指定方法的参数类型和返回类型,因此闭包的类型实际上是qazxsw poi
在您的具体情况:(Types of arguments) -> Return type
如您所见,此闭包没有参数名称,您无法添加它们。因此,在调用闭包时添加参数标签将不起作用。
但是,你可以在声明参数时命名参数,然后你可以在闭包范围内使用它...类似于声明函数
(Any) -> Void