Я заметил при написании 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}())