如何调用闭包类型的参数标签 (Swift)

How to call a parameter label of type closure (Swift)

作为参数的闭包

let driving = {
    print("I'm driving in my car.")
}

func travel(action: () -> Void) {
    print("I'm getting ready to go.")
    action()
    print("I arrived!")
}

travel(action: driving)

action是参数标签。为什么我们将其视为 action() 中的函数调用?

让我们看一个简单的例子:

func myFunction() {...} Swift 将此视为 () -> Void

与 Swift 将此 "John" 视为 String

的方式相同

所以当你写一个像myFunction这样的函数时,你真的可以说

func myFunction() -> Void {...} 相同的结果。

现在 action 被定义为函数的参数,但它接受的参数类型是 () -> Void 也就是闭包,现在您可以认为它只是另一个函数。

所以行 action() 只是该函数的 调用

但请务必阅读 functions accepted as parameters