Beim Schreiben eines assert
in Swift ist mir aufgefallen, dass der erste Wert als eingegeben wird
@autoclosure() -> Bool
mit einer überladenen Methode, um einen generischen T
Wert 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}())