Skip to content

a130785/SwiftFunctionalProgramming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

SwiftFunctionalProgramming

本章可以看作是Swift函数式编程入门

Swift是一门多范式编程语言。除了支持面向对象编程范式之外,还支持函数式编程范式,和泛型编程。这使得Swift可以使用函数式编程的某些优秀工具解决我们在面向对象编程中遇到的困难。作为一门崭新的语言(2014年发布),Swift也同时吸收了很多其他语言的优秀特性。这使得与GOF首次提出23个设计模式时相比,我们现在看待Swift中设计模式相关问题的看法肯定已大大不同了。毕竟GOF提出设计模式主要是针对Java和C++这种相对而言更传统的编程语言。在Swift中,一些模式已经被语言特性所吸收,你在使用Swift甚至察觉不出这类问题的存在;一些问题仍然存在,我们仍然需要某种设计模式,但实现起来会更为简便;当然,仍然会存在一些问题,Swift也没有解决。

另外一个有趣的相反的问题是:Swift是否引起了一些新问题,需要一些新的设计模式来解决呢?相对于一些实验性编程语言(如Lisp,Haskell)而言,作为一门工业语言,Swift的语言设计其实是保守的,吸收的大都是其他语言成熟的优秀特性。本质上,Swift仍然主要还是一门面向对象编程语言。函数式编程,泛型编程等新的语言特性的引入,都只是一种改进,还谈不上是革命性的变化。这使得Swift虽然显得保守,但也风险可控,伴随剧烈革命而引入新的问题的可能性被降低了。当然,最终结论仍然需要大规模的业界应用实践之后才能得出。

这篇文章主要会涉及Swift改善的那一部分。具体而言,是指Swift消除了哪些设计模式,使哪些设计模式的实现简化了。

为了方便阅读,本章3节分别写了一个playground,代码中都有注释,大家一看就懂。

博客地址:http://www.jianshu.com/p/1a1a20b7201c

About

Swift函数式编程

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages