swift 学习<五> 闭包

来源:互联网 发布:2017淘宝打折怎么设置 编辑:程序博客网 时间:2024/06/05 00:13

/**

  函数 格式

  // 参数列表 (对外名内部使用名 : 参数类型 ,对外名 内部使用名 :参数类型)


  闭包格式 

   // 声明一个参数是 闭包的函数

  // func  函数名(闭包名 : (参数名 :参数类型 , 参数名 : 参数类型) ->(返回值)){代码}



  // 调用 参数中带闭包 的函数

     // 函数名 { (参数列表)) -> (返回值类型) in闭包代码 }

     1,  尾随参数, 没有值的括号可省, 没有返回值是, -> in 都课省

     2, in 的作用是, 分割开 参数和代码



// 调用 闭包  

       返回值 = 闭包名 (参数列表)

     2, 参数列表, 没有对外名


*/


import UIKit


class ViewController:UIViewController {


   override func viewDidLoad() {

       super.viewDidLoad()

       

       text1(AA: 11, BB:22)

       

     // 没有参数,没有返回值

       text2 { () -> () in

           print("\n22222 " )

        }

     //当闭包是函数的最后一个参数, 而且没有参数和返回值时可以简写

//        text2 {

//            print("\n22222 " )

//        }

        

       

        //闭包有参无返回值

       //调用 带有有参无返回值的闭包  的函数

    // 函数名 { (参数名,参数名) -> in代码 }

      text3 { (aa, bb) -> () in

         print("\naa + bb")

        }

      // 函数名 { (参数列表)) -> (返回值类型) in闭包代码 }

       text4 { (aa , bb ) -> (Int)in

           print("\n\n")

           print(aa + bb)

           return aa + bb

        }

        

    }

    

    // 有参有返回值

   func text4(finish : (aa : Int , bb : Int) ->(Int)){

      

        print("\n有参有返回值\n")

       let result = finish(aa: 44, bb: 55)

       print("\n")

       print(result)

    }

    

    

     // 带有 有参无返回值的闭包 的函数

   // func  函数名(闭包名 : (参数名 :参数类型 , 参数名 : 参数类型) ->(返回值)){代码}

   func text3(finish : (aa : Int , bb : Int) -> ()){

      print("\n无参无返回值")

        // 调用闭包函数

       finish(aa:22,bb: 33)

    }

    

    

    //闭包 没有参数,没有返回值

   // func text2(闭包名 : (参数列表) -> (返回值)){代码}

   func text2(finish : () -> ()){

      print("\n11111 ")

        // 调用闭包函数

        finish()

    

    }

    

    

  

 // 函数

 // func 函数名(参数列表) ->返回值{代码}

 //参数列表 (对外名内部使用名 : 参数类型 ,对外名 内部使用名 :参数类型)

   func text1(AA aa : Int,BB bb : Int){

    

     print(aa + bb )

    

    }

    

   override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        

    }



}


0 0