您的位置:首页 > 移动开发 > Swift

swift 学习<五> 闭包

2015-09-04 18:52 253 查看
/**

  函数
格式

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

  闭包格式 

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

  // 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()

        
    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: