Swift 3.0 离我们越来越近了,这次它提供了很多更新特性,我准备和大家一起分析他们,那么我们就从删除 currying 说起吧。
还是在上一篇关于Swift 3.0 介绍文章中的,关于 Swift 3.0 计划的主页上,我们可以看到关于 3.0 更新的提案列表:
这里面列出的都是目前已经通过的提案,从中我们可以发现了有一个 SE-0002 号提案,这个提案就是要删除 Swift 中函数的 currying 特性。
我们来看看这个提案的原文:
Curried function declaration syntax func foo(x: Int)(y: Int) is of limited usefulness and creates a lot of language and implementation complexity. We should remove it.
大概说的就是函数的 currying 特性的使用场景并不大,但他会增加很多语言的复杂性,所以需要删除它。
关于 currying 特性,如果看过我们之前的文章,应该会有一些了解。有一篇专门为大家介绍了 currying 特性:
http://swiftcafe.io/2015/10/23/swift-daily-currying
如果你现在使用的是 Swift 2.2 编译器,那么你再创建 currying 函数的时候就会收到一个警告:
在 Swift 3.0 版本, currying 特性就会被彻底删除。我想这大概也只有 Swift 这样牛的社区,能对一门编程语言有这么快的迭代。
得知这个信息后,如果你的项目中用到了 currying 特性,那就可以提早做准备了。将相关的 currying 特性的使用平滑的替换掉。