美文网首页
Swift - 函数与闭包的抽象

Swift - 函数与闭包的抽象

作者: 离子来了 | 来源:发表于2016-04-14 16:02 被阅读33次

步骤

1.定义一个带有闭包参数的函数

func doPOST(url: String, commpletehandler: ((String,String) -> Void)?){
    if let hander = commpletehandler {
        hander( "post","result")
    }
}

doPOST("http://www.51.com") { (str1, str2) -> Void in
    print(str1)
    print(str2)
}
结果:
post
result
缺点:每次处理一样的逻辑都需要重写闭包里面的内容

2.定义一个和步骤1闭包一样的函数,简言之,将闭包抽象成函数

func doPOST(url: String, commpletehandler: ((String,String) -> Void)?){
    if let hander = commpletehandler {
        hander( "post","result")
    }
}
//MARK:函数可以当闭包使用
func doUrlhander(str1: String, str2: String){
    print(str1)
    print(str2)
}

doPOST("http://www.baidu.com",commpletehandler: doUrlhander)
结果:
post
result
优点:相同的逻辑不用重写
缺点:比较死,只能处理一种逻辑

3.定义一个中间函数,返回值是一个步骤1的闭包

func doPOST(url: String, commpletehandler: ((String,String) -> Void)?){
    if let hander = commpletehandler {
        hander( "post","result")
    }
}

//柯里化函数completeHander1 和 completeHander等价
func completeHander1(str0: String)(str1:String,str2:String){
    print(str0)
    print(str1)
    print(str2)
}

func completeHander(str0: String) -> ((String,String) -> Void){
    return {(str1,str2) -> Void in
        print(str0)
        print(str1)
        print(str2)
    }
}

doPOST("http://www.google.com.hk", commpletehandler: completeHander1("li"))
结果:
li
post
reult
优点:动态产生一个闭包回调

相关文章

  • Swift - 函数与闭包的抽象

    步骤 1.定义一个带有闭包参数的函数 2.定义一个和步骤1闭包一样的函数,简言之,将闭包抽象成函数 3.定义一个中...

  • swift学习笔记 ⑥ —— 闭包

    Swift学习笔记 - 文集 闭包,就是能够读取其他函数内部变量的函数。Swift 中的闭包与 C 和 OC 中的...

  • Swift学习笔记(1)

    SWift学习笔记 闭包 闭包表达式 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 ...

  • swift4 闭包

    swift 闭包 闭包:swift 中 函数是闭包的一种类似于oc的闭包闭包表达式(匿名函数) -- 能够捕获上下...

  • Swift-闭包

    Swift 闭包 函数 ()->() Swift 中的闭包和 Objective-C 中的 block 类似,闭包...

  • swift 闭包(闭包表达式、尾随闭包、逃逸闭包、自动闭包)

    闭包是自含的函数代码块,可以在代码中被传递和使用 闭包和swift的对比 Swift 中闭包与OC的 block ...

  • swift中的闭包

    swift中的闭包 闭包是自包含的函数代码块,可以在代码中被传递和使用。swift中的闭包与C和Objective...

  • 100 Days of Swift - Day 06 - 闭包(

    100 Days of Swift - Day 06 - 闭包Closures 6.1 闭包 Swift函数也属于...

  • Swift闭包和函数

    函数在Swift中只是一种特殊的闭包,闭包在Swift语言中是一等公民,支持闭包嵌套和闭包传递。Swift中的闭包...

  • Swift学习:闭包

    本篇将详细总结介绍Swift闭包的用法;闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift中的闭包与C...

网友评论

      本文标题:Swift - 函数与闭包的抽象

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