码迷,mamicode.com
首页 > 其他好文 > 详细

switf4闭包

时间:2018-02-07 14:36:03      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:ber   .com   turn   array   sort   alt   直接   mes   print   

  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闭包

标签:ber   .com   turn   array   sort   alt   直接   mes   print   

原文地址:https://www.cnblogs.com/hangman/p/8425891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!