可以使用来定义闭包typealias。如果在多个位置使用相同的闭包签名,这将提供一个方便的类型占位符。例如,常见的网络请求回调或用户界面事件处理程序非常适合使用类型别名“命名”。
public typealias ClosureType = (x: Int, y: Int) -> Int
然后,您可以使用类型别名定义函数:
public func closureFunction(closure: ClosureType) { let z = closure(1, 2) } closureFunction() { (x: Int, y: Int) -> Int in return x + y }