swift4 闭包

swift 闭包

闭包:
swift 中 函数是闭包的一种类似于oc的闭包
闭包表达式(匿名函数) -- 能够捕获上下文中的值
一般形式:{
(parameters) -> returnType in
statements
}

let say:(String) -> Void = {
        (name : String) -> Void in
        print("\(name)" + "hahahh")
    }
    
调用 
 say("hello")

对于自动闭包 是一种自动创建的闭包,封装了一堆表达式在自动闭包中

在开发中经常使用到的是逃逸闭包 逃逸闭包会在闭包的前面加上@escaping 这个是在swift3之后才加入的,一般函数在闭包内涉及操作那么闭包就必须是逃逸闭包,为了异步操作的捕获

 
    func getIncFunc(inc: Int) -> (Int) -> Int
    {
        var max = 10
        func incFunc(x: Int) ->Int{
            print("incFunc函数结束")
            max += 1
            return max + x
        }
        // 当执行到这一句时inc参数就应该被释放了, 但是由于在内部函数中使用到了它, 所以它被捕获了;
        // 同理, 当执行完这一句时max变量就被释放了, 但是由于在内部函数中使用到了它, 所以它被捕获了.
        print("getIncFunc函数结束")
        return incFunc
    }
调用
       let incFunc = getIncFunc(inc: 5)
        print(incFunc(6)) 
值为17 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容