命令式编程(过程式)
一步一步告诉计算机先做什么再做什么(How),最终达到你想要的结果(What)
比如:如果你想在一个数字集合 collection(变量名) 中筛选大于 5 的数字,你需要这样告诉计算机:
第一步,创建一个存储结果的集合变量 results;
第二步,遍历这个数字集合 collection;
第三步:一个一个地判断每个数字是不是大于 5,如果是就将这个数字添加到结果集合变量 results 中
相关语言
C、C++、JAVA、JAVASCRIPT、PYTHON 等开发语言都是命令式开发语言
声明式编程
只告诉计算机想要的结果(What),但不需要指定具体要怎么做(How)
相关语言
HTML、CSS、SQL 属于声明式编程
SQL 就是最明显的一种声明式编程的例子,例如:
SELECT * FROM student WHERE age > 20
函数式编程
最重要的特点是:函数第一位
,即:函数可以出现在任何地方
比如:
- 把函数作为参数传递给另一个函数
- 将函数作为返回值
相关语言
JavaScript、scala、python等开发语言
大部分常见的编程语言,基本上提供了对函数式编程的支持,比如 JavaScript,Java8 中的 Lambda
注意:C语言可以实现函数式编程风格,但不是函数式语言
总结
命令式编程更加的精细化,更严谨,程序也会一步一步的执行命令。但对程序员要求高,编写程序也复杂
声明式编程在特定的领域,给我们减轻负担,提升开发效率,程序员只需要对想要的结果(What)进行深思熟虑,程序会自动的解决过程(How)。
函数式编程是最近几年流行的趋势,各个老牌开发语言,也都在逐步支持这一特性,如:JAVA8 的lambda表达式
参考:
https://www.cnblogs.com/guanghe/p/10470864.html
https://zhuanlan.zhihu.com/p/34445114