I'm trying to build out a basic implementation of Promises in Swift, and I need to be able to add functions to an array, but I'm not sure how to get that to work.
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")})
What I'm finding is that the Swift Playground won't suggest append
when I try to do something like this:
self.pending.append(success)
Which makes sense - Swift can't infer the type of self.pending
- but that's where my problem lies. I'm not sure how to predefine an array of (Void -> Void)
functions.
Is it possible to create an array of functions in Swift? I would assume so, with functions being first-class citizens.
It's definitely possible, just initialize the array as:
var pending = Array<(Void -> Void)>()
or even a fancier
var pending = Array<()->()>()
or
var pending: [(Void->Void)] = []
or
var pending: [(()->())] = []
or
var penguins: [<(") <(")] = [] // kidding
This should work:
var pending: (() -> ())[]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With