我想使用对象方法作为闭包,因为我需要在对象的不同位置多次重复使用相同的闭包。让我们说我有以下内容:
class A {
func launch(code: Int) -> Bool { return false }
}
我需要在同一个对象中使用类型为Int -> Bool
的闭包。我怎样才能使用launch
方法作为闭包?如果我可以直接引用该方法,我宁愿不做{ self.launch($0) }
之类的事情。
答案 0 :(得分:1)
Instance methods are curried functions以实例为例 作为第一个论点。因此
class A {
func launch(code: Int) -> Bool { return false }
func foo() {
let cl = A.launch(self)
// Alternatively:
let cl = self.dynamicType.launch(self)
// ...
}
}
为您提供Int -> Bool
类型的闭包。