闭包

作者: 遥远不是北_ | 来源:发表于2018-09-28 15:50 被阅读8次

    闭包定义

    let 闭包名: 闭包类型(可选省略) = {(参数:参数类型,....)->返回值类型 in xxxx(执行的代码)}
    
        1. swift里面的闭包和oc里面的block很类似, block就是一个代码块'{}'
        2. 闭包可以作为函数的参数和返回值使用
        3. 注意点,在需要的使用执行闭包
        4. 关键点: 在闭包里面使用self需要注意循环引用
    
    1. 定义一个有参数有返回值的闭包
        func demoBB2() {
            //  定义一个有参数有返回值的闭包
            let closure = { (num1: Int, num2: Int) -> Int in
                return num1 + num2
            }
            //  执行闭包
            let result = closure(10, 20)
            print(result)
           
            //  提示: 可以先定义有参数有返回值函数,然后把函数的参数和返回值复制到代码块里面中间使用in隔开即可
            let closure1 = { (num1: Int, num2: Int) -> Int in
                return num2 + num1
            }
            
            
            let result1 = closure1(10, 20)
            print(result1)
        }
    

    定义一个有参数有返回值的函数

        func demoBB1() {
            //   定义一个有参数有返回值的函数
            func sum(num1: Int, num2: Int) -> Int {
                return num1 + num2
            }
            
            //  执行函数
            let result = sum(num1: 10, num2: 20)
            print(result)
        }
    
    1. 定义无参数无返回值的闭包
        func demoAA2() {
            
            //  定义一个闭包
    //        let closure: ()->() = {
    //            print("无参数无返回值的闭包")
    //        }
            
            let closure = {
                print("无参数无返回值的闭包")
            }
            
            //  假如需要在这个地方执行闭包
            closure()
            
        }
        
    

    相关文章

      网友评论

          本文标题:闭包

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