Swift 3.0 浅析 - 即将删除 currying 特性

swift 发布于 2017年11月20日

还是在上一篇关于 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 特性的使用平滑的替换掉。


如果你觉得这篇文章有帮助,还可以关注微信公众号 swift-cafe,会有更多我的原创内容分享给你~

本站文章均为原创内容,如需转载请注明出处,谢谢。
关注微信公众号
发现更多精彩
swift-cafe