【发布时间】:2014-06-06 18:39:26
【问题描述】:
我正在尝试在 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")})
我发现当我尝试做这样的事情时,Swift Playground 不会建议 append:
self.pending.append(success)
这是有道理的——Swift 无法推断出self.pending 的类型——但这就是我的问题所在。我不确定如何预定义 (Void -> Void) 函数数组。
是否可以在 Swift 中创建函数数组?我会假设是这样,函数是一等公民。
【问题讨论】:
-
这个我没试过,但是明显的
var pending: (Void->Void)[] = []不行吗? -
Swift 游乐场似乎不喜欢
var pending = (Void -> Void)[] = []
标签: swift