今天我们谈到 declarative 声明式和 imperative 命令式,
他的概念比较像是以下如下,
假设请一个厨师煮出一道高丽菜
准备高丽菜
洗高丽菜
炒高丽菜
呈盘上桌
告诉厨师我要一道高丽菜的声明
厨师直接端出一到高丽菜
以上这两种操作各有优缺点,
引用: https://www.ionos.com/digitalguide/websites/web-development/imperative-programming/
参考这张图的说明,imperative 关注的是对象的操作和流程,而 declarative 关注的是 function 的 input, output
使用 function 指定一个 start 和 end 的数字,
分别用 imperative 和 declarative 来操作
// imperative
const loop = (start,end)=>{
let result = start;
for (let i = start; i < end; i++) {
console.log(result);
result += 1;
}
}
loop(2, 10); // 2,3,4,5,6,7,8,9,10
const recurse = (start,end)=>{
if(start === end){
console.log(start);
return;
}else{
console.log(start);
return recurse(start+1,end);
}
}
recurse(2, 10); // 2,3,4,5,6,7,8,9,10
可以看到以上两种写法都会得出一样的结果,imperative 常用回圈来操作,而 declarative 常用递回来操作,imperative 会经由一些判断来显示要的结果,而 declarative 则是关注 input 和 output。
https://medium.com/weekly-webtips/imperative-vs-declarative-programming-in-javascript-25511b90cdb7#:~:text=The most common explanation of,you want from the computer.
https://www.freecodecamp.org/news/functional-programming-in-javascript/
https://www.ionos.com/digitalguide/websites/web-development/imperative-programming/
>>: [Day24] - Django-REST-Framework User Management
续昨天的bdp_I2C_ADXL345.c实现读写说明, 首先先看到Datasheet的第7页引脚说...
只有收获,才能体验耕耘的意义;只有贡献,方可衡量人生的价值。 《iT邦帮忙铁人赛的观点》(以下简称铁...
前言 Pandas 是强大的资料科学分析工具,结合前几天所学的NumPy特性 提供方便读取及使用的资...
前面两天整理的笔记主要都在建立新的东西 今天就把修改用的指令做整理 1. revert - 重做上个...
前言 我们已经讲完了环境建置中的硬体选择等议题了,但空有一台机器没有 OS 等软件还是无法去使用,所...