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