J'ai du code que j'essaie de rendre générique, et je n'arrive pas à comprendre comment.Génériques dans les extensions de séquence
func randomInt() -> Int { return Int(arc4random_uniform(42)) }
let closures = [randomInt, randomInt, randomInt, randomInt]
let result = closures.map { $0() }
print(result)
Essentiellement, je veux prendre un tableau de fermeture, qui renvoient une valeur de type T
, et retourner un tableau de type [T]
avec tous les résultats.
C'est ma tentative:
extension Sequence where Element ==() -> T
{
func callAll() -> [T]
{
return self.map { $0() }
}
}
fonctionne Cependant, cela ne clairement pas, comme T
est indéfini. Comment pourrais-je écrire cette extension?