SWIFT的闭包

2018-04-10  本文已影响7人  沐时

最近在研究闭包,所以做个总结.

一般的函数写法:

 func funcMethod(para1 name1 : String,para2 name2:String) ->Int
    {
        return 10
    }
调用
 let funcValue : Int = self.funcMethod(para1: "11", para2: "22")
 print(funcValue)

然后主要讲闭包(ob是创建的一个类)

重定义闭包作为参数和直接作为参数(有参无返回值)

重定义闭包作为参数
typealias fucBlock = (_ backMsg :String) ->()
    
    func processWithBlock(cmdStr:String?,blockProperty:fucBlock){
        blockProperty("backMsg---by block inside func11")
    }

调用
 ob.processWithBlock(cmdStr: "252622"){ (backMsg) in
           print("processWithBlock--\(backMsg)")
       }

----
闭包直接作为参数使用
//block返回值
    func processWithBlock(cmdStr:String?,blockProperty:(_ backMsg :String) ->())->(String){
        blockProperty("backMsg---by block inside func12")
        return ""
    }

重定义闭包作为参数和直接作为参数(有参有返回值)

 func process4WithBlock(cmdStr:String?,blockProperty:(_ backMsg :String) ->(Int))->(String){
        let jk : Int = blockProperty("backMsg---by block inside func13")
        print("jk's value is + \(jk)")
        return "process4WithBlock +\(String(describing: cmdStr))"
    }
调用
 let intValue : String = ob.process4WithBlock(cmdStr: "252") { (cmdStr : String) -> (Int) in
            
            print(cmdStr)
            
            return 9+9
            
        }
        
        print(intValue)
        

返回闭包

这个是swift新的特点,函数可以直接当参数使用,返回的闭包可以根据不同的输入值,返回不同的函数类型

有兴趣可以加群一起讨论:588123358
参考链接:
1.Swift 用Delegate和Block实现回调的Demo
2.窥探 Swift 之 函数与闭包的应用实例

上一篇 下一篇

猜你喜欢

热点阅读