美文网首页
swift 柯里化

swift 柯里化

作者: 半日浮生_iOSer | 来源:发表于2016-10-31 17:43 被阅读77次

Swift 里可以将方法进行柯里化 (Currying),这是也就是把接受多个参数的方法进行一些变形,使其更加灵活的方法。函数式的编程思想贯穿于 Swift 中,而函数的柯里化正是这门语言函数式特点的重要表现。

举个例子,下面的函数简单地将输入的数字加 1:

func addOne(num: Int) -> Int {

return num + 1

}

这个函数所表达的内容非常有限,如果我们之后还需要一个将输入数字加 2,或者加 3 的函数,可能不得不类似地去定义返回为 num + 2 或者 num + 3 的版本。有没有更通用的方法呢?我们其实可以定义一个通用的函数,它将接受需要与输入数字相加的数,并返回一个函数。返回的函数将接受输入数字本身,然后进行操作:

func addTo(_ adder: Int) -> (Int) -> Int {

  return {

    num in

    return num + adder

   }

}

有了 addTo,我们现在就能轻易写出像是 addOne 或者 addTwo 这样的函数了:

let addTwo = addTo(2)    // addTwo: Int -> Int

let result = addTwo(6)  // result = 8

再举一个例子,我们可以创建一个比较大小的函数:

func greaterThan(_ comparer: Int) -> (Int) -> Bool {

  return { $0 > comparer }

}

let greaterThan10 = greaterThan(10);

greaterThan10(13)    // => true

greaterThan10(9)    // => false

柯里化是一种量产相似方法的好办法,可以通过柯里化一个方法模板来避免写出很多重复代码,也方便了今后维护。

相关文章

  • Swift 进阶

    swift新元素 柯里化(Currying) Swift 里可以将方法进行柯里化(Currying),这是也就是把...

  • Swift 柯里化

    Swift 柯里化 前言:在Swift中,柯里化在业务层的使用比较少,本文旨在介绍基本的柯里化的基本概念和基本使用...

  • swift 柯里化

    swift 柯里化 柯里化 1、什么是柯里化? 柯里化是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一...

  • Swift-27个关键字,助力开发(篇幅有点长)

    1、柯里化(Currying) Swift 里可以将方法进行柯里化 (Currying),也就是把接受多个参数的方...

  • swift Tips

    swift curried(柯里化) func greaterThan(comparor: Int)(input:...

  • swift 柯里化

    Swift 里可以将方法进行柯里化 (Currying),这是也就是把接受多个参数的方法进行一些变形,使其更加灵活...

  • swift学习试笔——函数

    swift函数柯里化: func bigThan(a:Int,b:Int) -> Bool { return a ...

  • 《Swift开发者必备Tips》 学习总结(一)

    柯里化 (Currying) Swift 可以将方法进行柯里化,即 把接受多个参数的方法进行一些变形,使其更加灵活...

  • Swift函数柯里化介绍及使用场景

    函数柯里化是函数式编程里的一个重要概念。swift中的柯里化可能很多人都没有了解过,今天给大家介绍一下柯里化的概念...

  • Swift Currying(柯里化)

    Swift Currying(柯里化) 标签(空格分隔): swift 函数式编程思想先举一个小例子: 显然这种编...

网友评论

      本文标题:swift 柯里化

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