美文网首页
SWIFT的闭包

SWIFT的闭包

作者: 沐时 | 来源:发表于2018-04-10 16:03 被阅读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 之 函数与闭包的应用实例

    相关文章

      网友评论

          本文标题:SWIFT的闭包

          本文链接:https://www.haomeiwen.com/subject/lgknhftx.html