• 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)

        

        

        

        }

    一天一章
  • 相关阅读:
    POJ2406【KMP-next数组】
    POJ2752【KMP-next数组含义】
    POJ3696【欧拉函数+欧拉定理】
    POJ3692【二分匹配】
    POJ3697【BFS】
    CodeForces599D【数学】
    CodeForces599C【贪心】
    HDU1829【种类并查集】
    HDU3038【种类并查集】
    POJ1182【种类并查集】
  • 原文地址:https://www.cnblogs.com/hangman/p/8425891.html
Copyright © 2020-2023  润新知