Я заметил при написании assert
в Swift, что первое значение напечатано как
@autoclosure() -> Bool
с перегруженным методом, чтобы вернуть общее T
значение, чтобы проверить существование через LogicValue
protocol
.
Однако строго придерживаться поставленного вопроса. Похоже, что хочет, @autoclosure
который возвращает Bool
.
Запись фактического замыкания, которое не принимает параметров и возвращает Bool, не работает, он хочет, чтобы я вызвал замыкание для его компиляции, вот так:
assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)
Однако простое прохождение Bool работает:
assert(false, "No user has been set", file: __FILE__, line: __LINE__)
Так, что происходит? Что такое @autoclosure
?
Изменить: @auto_closure
был переименован@autoclosure
f({2 >1}())