J'ai remarqué lors de l'écriture d'un assert
Swift que la première valeur est tapée comme
@autoclosure() -> Bool
avec une méthode surchargée pour renvoyer une T
valeur générique , pour tester l'existence via le LogicValue
protocol
.
Cependant s'en tenir strictement à la question à l'étude. Il semble vouloir un @autoclosure
qui 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}())