Beim Schreiben eines assertin Swift ist mir aufgefallen, dass der erste Wert als eingegeben wird
@autoclosure() -> Bool
mit einer überladenen Methode, um einen generischen TWert zurückzugeben, um die Existenz über die zu testen LogicValue protocol.
Halten Sie sich jedoch strikt an die vorliegende Frage. Es scheint ein zu wollen @autoclosure, das a zurückgibt Bool.
Das Schreiben eines tatsächlichen Abschlusses, der keine Parameter akzeptiert und einen Bool zurückgibt, funktioniert nicht. Ich möchte den Abschluss aufrufen, damit er kompiliert wird, wie folgt:
assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)
Das einfache Übergeben eines Bool funktioniert jedoch:
assert(false, "No user has been set", file: __FILE__, line: __LINE__)
Also, was ist los? Was ist @autoclosure?
Bearbeiten: @auto_closure wurde umbenannt@autoclosure
f({2 >1}())