switf4闭包

Posted huangyan1022

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switf4闭包相关的知识,希望对你有一定的参考价值。

  1. // 第二种方式:使用闭包方式  
  2.  // 完整闭包写法是在花括号内有参数列表和返回值,用关键字in表明闭包体的开始  
  3.  // (firstString: String, secondString: String) 闭包参数列表  
  4.  // -> Bool 指明闭包返回值类型是Bool  
  5.  // in关键字表明闭包体的开始  
  6.  reversed = sort(names, { (firstString: String, secondString: String) -> Bool in  
  7.     return firstString > secondString  
  8.     })  
  1. /* 
  2.  * 尾随闭包(Trailing Closures) 
  3.  * 如果函数需要一个闭包参数作为参数,且这个参数是最后一个参数,而这个闭包表达式又很长时, 
  4.  * 使用尾随闭包是很有用的。尾随闭包可以放在函数参数列表外,也就是括号外。如果函数只有一个参数, 
  5.  * 那么可以把括号()省略掉,后面直接跟着闭包。 
  6.  */   
  7. // Array的方法map()就需要一个闭包作为参数  
  8. let strings = numbers.map { // map函数后面的()可以省略掉  
  9.   (var number) -> String in  
  10.   var output = ""  
  11.   while number > 0 {  
  12.     output = String(number % 10) + output   
  13.     number /= 10  
  14.   }  
  15.   return output  
  16. }  

 

 

 

 

 

 

 

 

格式

()->()

 

闭包可选 是否为空可以强行解包

 var comblock:(()->())?

 

  comblock?()

 

跳转 传值时 可以判断是否为空

第一个页面

 let vc = WorkindetailViewController()

        

         vc.workModer = model

        //返回时

        vc.comblock = {

            

            

    //返回时的改变值

            print(self.model.testname)

            

            

            

        }

        

        navigationController?.pushViewController(vc, animated: true)

        print("点击")

        

 

第二个页面

 

@objc func click(){

    

      workModer?.testname = "肯定"

 //不用判断

        comblock?()

    navigationController?.popViewController(animated: true)

    

    

    

    }

 

以上是关于switf4闭包的主要内容,如果未能解决你的问题,请参考以下文章

JS闭包的基础知识,闭包的本质,闭包的作用,闭包的间谍属性和闭包的遗憾

Groovy闭包 Closure ( 自定义闭包参数 | 自定义单个闭包参数 | 自定义多个闭包参数 | 闭包参数默认值指定 )

Groovy闭包 Closure ( 闭包定义 | 闭包类型 | 查看编译后的字节码文件中的闭包类型变量 )

iOS开发-Swift进阶之闭包,逃逸闭包 & 非逃逸闭包!

Groovy闭包 Closure ( 闭包调用 | 闭包默认参数 it | 代码示例 )

JavaScript ---- 闭包(什么是闭包,为什么使用闭包,闭包的作用)