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}())