首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Swift @autoclosure

如何使用Swift @autoclosure
EN

Stack Overflow用户
提问于 2014-06-08 11:05:30
回答 6查看 30.9K关注 0票数 152

我注意到在Swift中编写assert时,第一个值的类型为

代码语言:javascript
复制
@autoclosure() -> Bool

使用重载方法返回泛型T值,通过LogicValue protocol测试是否存在。

然而,严格地坚持手头的问题。它似乎需要一个返回Bool@autoclosure

编写一个不带参数并返回布尔值的实际闭包是不起作用的,它希望我调用闭包来编译它,如下所示:

代码语言:javascript
复制
assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)

然而,简单地传递一个布尔值是有效的:

代码语言:javascript
复制
assert(false, "No user has been set", file: __FILE__, line: __LINE__)

那么到底是怎么回事呢?什么是@autoclosure

编辑: @auto_closure已重命名为@autoclosure

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24102617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档