Я помітив, коли писав 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}())