我正在尝试在Swift中构建Promises的基本实现,并且我需要能够向数组中添加函数,但是我不确定如何使它起作用。
class Promise { var pending = [] func resolve() -> Void { } func then(success: (Void -> Void)) -> Promise { // how do I add success to pending array? return self } } let p = Promise() p.then({println("finished")})
我发现,append当我尝试执行以下操作时,Swift Playground不会建议您:
append
self.pending.append(success)
这很有道理-Swift无法推断出-的类型,self.pending但这就是我的问题所在。我不确定如何预定义(Void -> Void)函数数组。
self.pending
(Void -> Void)
是否可以在Swift中创建函数数组?我想是这样,职能是一等公民。
绝对有可能,只需将数组初始化为:
var pending = Array<(Void -> Void)>()
甚至是鸽友
var pending = Array<()->()>()
要么
var pending: [(Void->Void)] = []
var pending: [(()->())] = []
var penguins: [<(") <(")] = [] // kidding