美文网首页
@autoclosure 的作用

@autoclosure 的作用

作者: li好孩子 | 来源:发表于2019-02-25 22:53 被阅读0次

比如我们有一个方法,该方法可以接受一个闭包作为参数

func logIfTrue(_ test: () ->Bool) {
    if test() {
        print("true")
    }
}

我们执行这个方法可以有一下几种方式

1. logIfTrue { () -> Bool in
    return true
}
2. logIfTrue({return true})
3. logIfTrue{return true}

写起来比较麻烦,其实在Swift 中我们可以对闭包进行简化,这时候就可以使用@autoclosure了,@autoclosure的作用就是可以把一个表达式自动转换成闭包

func logIfTrue(_ test: @autoclosure () ->Bool) {
    if test() {
        print("true")
    }
}

此时我们在执行该方法的时候就变成了下面这种方式

logIfTrue(true)

它本质上是把 true 转换成了 () ->Bool 这个闭包

最后需要注意的是 @autoclosure 并不支持带有输入参数的写法,也就是说只有形如 () -> T 的参数才能使用这个特性进行简化。

相关文章

  • @autoclosure 的作用

    比如我们有一个方法,该方法可以接受一个闭包作为参数 我们执行这个方法可以有一下几种方式 写起来比较麻烦,其实在Sw...

  • swift 中的关键字@autoclosure

    对于@autoclosure苹果官方的博客中有说明@autoclosure,@autoclosure 做的事情就是...

  • swift:Closure 闭包

    @noescape @autoclosure @autoclosure(escaping)

  • Swift @autoclosure

    使用@autoclosure可以使得该参数结果延迟获取,在获取复杂数据结果作为参数时有优化的作用 使用@autoc...

  • Swift的autoclosure与escaping标签

    @autoclosure 在《函数式 Swift》第四章提到了 Swift 的 autoclosure 标签能够避...

  • Swift 关于AUTOCLOSURE 和 ??

    转正:autoclosure:可理解为自动识别的闭包http://swifter.tips/autoclosure/

  • ios 经典面试案例 (六)

    Swift autoclosure的作用? 1:自动闭包,顾名思义是一种自动创建的闭包,用于包装函数参数的表达式,...

  • Swift基础知识

    autoclosure @autoclosure 做的事情就是把一句表达式自动地封装成一个闭包。用法就是在类型签名...

  • SwiftAPI设计之使用@autoclosure

    原文链接:Using @autoclosure when designing Swift APIs Swift的@...

  • Swift @autoclosure

    @autoclosure 做的事情就是把一句表达式自动地封装成一个闭包 (closure)。这样我们用的时候,就可...

网友评论

      本文标题:@autoclosure 的作用

      本文链接:https://www.haomeiwen.com/subject/djnnyqtx.html