Я заметил, что при записи 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