SWIFT的闭包

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

一般的函数写法:

 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 之 函数与闭包的应用实例

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容