assertSwift ile yazarken ilk değerin şu şekilde yazıldığını fark ettim:
@autoclosure() -> Bool
jenerik bir Tdeğer döndürmek için aşırı yüklenmiş bir yöntemle LogicValue protocol,.
Ancak eldeki soruya kesinlikle bağlı kalıyor. A @autoclosuredöndüren bir istiyor gibi görünüyor Bool.
Hiçbir parametre almayan ve bir Bool döndüren gerçek bir kapanış yazmak işe yaramaz, derlemek için kapanışı çağırmamı ister, şöyle:
assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)
Ancak basitçe bir Bool geçmek işe yarar:
assert(false, "No user has been set", file: __FILE__, line: __LINE__)
Peki neler oluyor? Nedir @autoclosure?
Düzenleme: @auto_closure yeniden adlandırıldı@autoclosure
f({2 >1}())