Swift学习笔记

Swift - 自动闭包

2022-03-15  本文已影响0人  aven_kang
func getFirstPostive(_ v1:Int, _ v2: @autoclosure ()->Int) -> Int {
        
        return v1 > 0 ? v1:v2()
        
    }
 func getFirstPostive(_ v1:Int, _ v2: ()->Int) -> Int {
        
        return v1 > 0 ? v1:v2()
        
    }

在上面定义了两个方法,v2 返回的都是一个函数,也算一个闭包,但是第一个多了autoclosure这个修饰
我们看看调用的时候,两者有什么区别

getFirstPostive(10, 20). // 带autoclosure修饰的
getFirstPostive(10) {      // 不带autoclosure修饰的
            return 10;
        }

两个对比起来,我们大概可以知道,Swift在使用autoclsure的时候,自动为函数生成了闭包表达式,也是就是本来可以这么写的

getFirstPostive(10, {20})

现在可以改成

getFirstPostive(10, 20). // 带autoclosure修饰的

自动为我们生成了语法糖


截屏2022-02-19 下午2.22.26.png
上一篇下一篇

猜你喜欢

热点阅读