永发信息网

声明式编程和命令式编程有什么区别

答案:1  悬赏:40  手机版
解决时间 2021-01-18 01:06
声明式编程和命令式编程有什么区别
最佳答案
1、命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。

声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。

2、声明式编程和命令式编程的代码例子
举个简单的例子,假设我们想让一个数组里的数值翻倍。
(1)用命令式编程风格实现,像下面这样:
var numbers = [1,2,3,4,5]
var doubled = []
for(var i = 0; i < numbers.length; i++) {
var newNumber = numbers[i] * 2
doubled.push (newNumber)
}
console.log (doubled) //=> [2,4,6,8,10]
我们直接遍历整个数组,取出每个元素,乘以二,然后把翻倍后的值放入新数组,每次都要操作这个双倍数组,直到计算完所有元素。

(2)而使用声明式编程方法,我们可以用 Array.map 函数,像下面这样:
var numbers = [1,2,3,4,5]
var doubled = numbers.map (function (n) {
return n * 2
})
console.log (doubled) //=> [2,4,6,8,10]

map利用当前的数组创建了一个新数组,新数组里的每个元素都是经过了传入map的函数(这里是function (n) { return n*2 })的处理。
map函数所做的事情是将直接遍历整个数组的过程归纳抽离出来,让我们专注于描述我们想要的是什么(what)。注意,我们传入map的是一个纯函数;它不具有任何副作用(不会改变外部状态),它只是接收一个数字,返回乘以二后的值。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
用榨汁机可以做什么?
双11花呗提额活动是从什么时候开始的?具体什
做西米捞:西米煮第一遍后怎么再过凉水~
5%=25的结果5。 c语言
天台遮阳隔热的藤类植物
谁在青岛和养堂招聘过? 通知我星期一去面试,
淘宝卖家流量转化率超过多少就会被判降权?转
小学生用真正造句?
二冲程摩托车能跑长途吗
博越车上有没有220V电源接口
3.5x八分之五x1.6是多少
吉林镇来监狱离齐齐哈尔多远
长期与短期采购合同签订的时间的界限是什么
自考好还是高考好
内衣是否适合长时间浸泡
推荐资讯
2.8公里开车需要多长时间
GTX690玩吃鸡可以吗
Tara Sexy love MV里面有哪几位成员…
昭和是什么意思?平成又是什么意思?
若x^2-3x+1=0,那么x^4+1/x^4等于
柚子放了2到3个月了还能吃吗?外面的皮是软的
(2013?威海模拟)夏季晴朗的一天,将某植物
本人本硕非211。专业是数学,今年6月毕业现在
猜一种动物泛舟南北两湖头到处青幽不用求水碧
自制罗勒酱怎么做如何做好吃
横批是恭贺新禧
中发·书香华庭停车场地址好找么,我有些
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?