J'ai remarqué lors de l'écriture d'un assertSwift que la première valeur est tapée comme
@autoclosure() -> Bool
avec une méthode surchargée pour renvoyer une Tvaleur générique , pour tester l'existence via le LogicValue protocol.
Cependant s'en tenir strictement à la question à l'étude. Il semble vouloir un @autoclosurequi renvoie un Bool.
L'écriture d'une fermeture réelle qui ne prend aucun paramètre et retourne un booléen ne fonctionne pas, cela veut que j'appelle la fermeture pour la faire compiler, comme ceci:
assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)
Cependant, le simple fait de passer un Bool fonctionne:
assert(false, "No user has been set", file: __FILE__, line: __LINE__)
Alors, quoi de neuf? C'est quoi @autoclosure?
Edit: a @auto_closure été renommé@autoclosure
f({2 >1}())