我不明白Swift(3.1)
中的这种行为// Code segment 1
func foo(bar baz: Int) -> Void {
print(baz)
}
foo(bar: 42) // => prints 42
// Code segment 2
func gimmeFunc() -> (Int) -> Void {
func foo(bar baz: Int) -> Void {
print(baz)
}
return foo
}
var qux = gimmeFunc()
qux(bar: 42) // I get ".. error: extraneous argument label 'bar:' in call"
qux(42) // Works
为什么代码段2中返回的函数的行为有所不同?