Swift柯里化(Currying)
2016-04-20 23:56
323 查看
在Swift中可以将方法进行柯里化(Currying),也就是把接受多个参数的方法变成接受第一个参数的方法,并且返回接受余下的参数,返回结果的新方法。
例如:
func addTwoNumbers(a:Int)(num:Int) -> Int {
return a + num
}
然后通过只传第一个括号内的参数进行调用,这样将返回另一个方法:
let addtoFour = addTwoNumbers(4) //addToFour 是一个Int -> Int
let result = addToFour(num:6) //result = 10
或者:
func greaterThan(comaror:Int)(Input:Int) -> Bool {
return input > comparor
}
let greaterThan10 = greaterThan(10)
greaterThan10(Input:13)//结果是ture
greaterThan10(Input:9)//结果是false
柯里化是一种量产相似方法的好办法,可以通过柯里化一个方法模板来避免写出很多重复代码,也方便了今后的维护。
例如:
func addTwoNumbers(a:Int)(num:Int) -> Int {
return a + num
}
然后通过只传第一个括号内的参数进行调用,这样将返回另一个方法:
let addtoFour = addTwoNumbers(4) //addToFour 是一个Int -> Int
let result = addToFour(num:6) //result = 10
或者:
func greaterThan(comaror:Int)(Input:Int) -> Bool {
return input > comparor
}
let greaterThan10 = greaterThan(10)
greaterThan10(Input:13)//结果是ture
greaterThan10(Input:9)//结果是false
柯里化是一种量产相似方法的好办法,可以通过柯里化一个方法模板来避免写出很多重复代码,也方便了今后的维护。
相关文章推荐
- 三点...和两点加箭头..<的含义和区别
- Swift之 ? , !, as
- swift 的迭代与递归
- oc swift 交互
- swift笔记(二) —— 运算符
- Swift集成极光推送
- Swift - 修改导航栏的样式(文字颜色,背景颜色,背景图片)
- Top 10 Swift的第三方库
- Swift 封装UIView
- swift 中常用的进制转换
- AFNetworking配合Swift3.0请求数据
- Swift 正则表达式 验证手机号、邮箱、URL等
- Swift URL Schemes使用
- Swift报错type ''does not conform to protocol 'UITableViewDataSource'
- 在项目里交叉使用Swift和OC
- swift 小技巧进阶
- ubuntu之swift环境搭建
- Swift调试输出
- 为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是直接编译成机器码?
- 长远看 Apple 的平台上开发, Swift 真的可以完全取代 OC 吗?