assert
Swift ile yazarken ilk değerin şu şekilde yazıldığını fark ettim:
@autoclosure() -> Bool
jenerik bir T
değer döndürmek için aşırı yüklenmiş bir yöntemle LogicValue
protocol
,.
Ancak eldeki soruya kesinlikle bağlı kalıyor. A @autoclosure
dö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}())