关键区别——声明式编程与命令式编程
声明式和命令式编程是两种常见的编程范式。声明式编程和命令式编程的关键区别在于,声明式编程侧重于程序应该完成什么,而命令式编程侧重于程序应该如何实现结果。
编程范例用于根据特性对编程语言进行分类。它还允许遵循某种模式或风格来解决特定问题。
目录
1. 概述和主要区别
2. 什么是声明式编程
3. 什么是命令式编程
4. 并排比较-以表格形式的声明式编程与命令式编程
5. 摘要
什么是声明式编程(declarative programming)?
声明式编程可以用一个真实的场景来解释。假设用户需要检查新邮件。一种方法是启用收件箱通知。用户只需启用一次通知,每次新邮件到达时,他都会自动收到通知。声明式编程与此类似。它提供了简单性。声明式编程表示所需的结果。它解释了计算的逻辑,而不描述控制流。
下面是一个声明式编程的例子。它是将一个数组的数乘以一个常量,然后将它们存储到一个新数组中。
变量数=[1,2,3];
var新编号=数字地图(功能(编号){
返回数*5;
});
控制台.log(新号码);
在上面的示例中,'map'给出了迭代数组中的每个项、调用每个项的回调函数以及将返回值存储到新数组的指令。这将得到输出5、10、15。在这个程序中,用map函数实现了数字乘以5的主要目标。它将遍历每个元素并使用回调函数计算值并将其存储到新数组中。不需要提供所有步骤。重点放在应该实现的目标上。
什么是命令式程序设计(imperative programming)?
命令式编程可以像以前一样使用真实场景来解释。要查看新邮件,用户可以登录gmail并不断刷新页面,查看是否收到新邮件。这与命令式编程类似。它解释了实现结果所涉及的每一步。它使用语句来表示程序状态的变化。
将数组元素与常量相乘并在命令式编程中将值存储到新数组中,如下所示。
变量数=[1,2,3];
var newnumbers=[];
对于(int i=0;i<数字.长度;i++){
新号码。推送(数字[i]*5);
}
控制台.log(新号码);
在上面的例子中,数字是一个数组。当遍历循环时,每个数字乘以5并添加到newnumbers数组中。循环结束后,将打印新数字的内容,即5、10、15。
可以看出,祈使式风格提供了完成任务的所有步骤。它表达了如何使用'i'计数器变量遍历数组,在退出循环之前要迭代多少次,以及如何将计算的值**到新数组中等等。
使用声明式和命令式编程解决了相同的问题。
声明的(declarative)和命令式程序设计(imperative programming)的区别
声明式编程与命令式编程 | |
声明式编程是一种编程范式,它表示计算的逻辑而不描述其控制流。 | 命令式编程是一种编程范式,它使用改变程序状态的语句。 |
主要焦点 | |
声明式编程关注程序应该完成什么。 | 命令式编程关注程序应该如何实现结果。 |
灵活性 | |
声明式编程提供的灵活性较小。 | 命令式编程提供了更大的灵活性。 |
复杂性 | |
声明式编程简化了程序。 | 命令式编程可以增加程序的复杂性。 |
分类 | |
函数式、逻辑式、查询式编程属于声明式编程。 | 过程式和面向对象编程属于命令式编程。 |
总结 - 声明的(declarative) vs. 命令式程序设计(imperative programming)
本文讨论了两种主要编程范式的区别,即声明式编程和命令式编程。声明式编程和命令式编程的区别在于,声明式编程侧重于程序应该完成什么,而命令式编程侧重于程序应该如何实现结果。