首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >声明式编程和命令式编程有什么区别?

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

提问于 2017-12-21 08:54:32
回答 2关注 0查看 761

我一直在寻找网络寻找一个声明式和命令式编程的定义,这将给我留下一些亮光。然而,在我发现的一些资源上使用的语言令人望而生畏,例如在维基百科。有没有人有一个真实世界的例子,他们可以告诉我,这可能会给这个问题带来一些观点...也许在C#中。

回答 2

Dust

发布于 2017-12-21 09:21:23

  • 声明式 - 指定要做什么,而不是如何去做
  • 例如:HTML描述了网页上应该显示的内容,而不是如何在屏幕上绘制
  • 命令 - 指定什么和如何
  • int x; - 什么(声明)
  • x=x+1; - 怎么样

MyLove

发布于 2017-12-21 09:20:48

一个很好的C#声明式与命令式编程的例子是LINQ。

使用命令式编程,您可以一步一步地告诉编译器您想要发生的事情。

例如,让我们从这个集合开始,选择奇数:

代码语言:txt
AI代码解释
复制
List<int> collection = new List<int> { 1, 2, 3, 4, 5 };

使用命令式编程,我们将逐步完成这个任务,然后决定我们想要的:

代码语言:txt
AI代码解释
复制
List<int> results = new List<int>();
代码语言:txt
AI代码解释
复制
foreach(var num in collection)
代码语言:txt
AI代码解释
复制
{
代码语言:txt
AI代码解释
复制
    if (num % 2 != 0)
代码语言:txt
AI代码解释
复制
          results.Add(num);
代码语言:txt
AI代码解释
复制
}

在这里,我们说:

  1. 创建一个结果集合
  2. 浏览集合中的每个数字
  3. 检查数字,如果是奇数,则将其添加到结果中

另一方面,使用声明性编程,您可以编写描述所需内容的代码,但不一定如何获取它(声明所需的结果,但不是一步一步的):

代码语言:txt
AI代码解释
复制
var results = collection.Where( num => num % 2 != 0);

在这里,我们说“给我们所有的东西都是奇怪的”,而不是“单步执行收集。检查这个项目,如果它很奇怪,将它添加到结果集合中”。

在许多情况下,代码也是两种设计的混合体,所以它并不总是黑白的。

和开发者交流更多问题细节吧,去 写回答
相关文章
JavaScript: 函数式编程 - 声明式函数
什么是声明式,我们将不再指示计算机如何工作,而是指我们明确希望得到的结果。这种编程方式会改变我们习以为常的命令式编程相比,会让我们的轻松许多。
西南_张家辉
2021/02/02
1.3K0
【基于JS 函数式编程 -1】什么是函数式编程 | 纯函数 | 命令式与声明式 | 优点
我们知道,在数学中,函数可以有如下形式: f(X) = Y ,即一个函数f ,以X作参数,返回输出结果Y。 据此,我们可以归纳一个函数:
前端修罗场
2023/10/07
2480
8、声明式和命令式
原生开发和Vue开发的模式和特点,我们会发现是完全不同的,这里其实涉及到两种不同的编程范式:
Qwe7
2022/06/30
6320
声明式编程Vue重新修炼
es6后对原来的var做了改正,为了保证块级作用域,我们强制要求必须使用let和const 变量--->let 常量--->const
名字是乱打的
2021/12/23
3690
声明式编程Vue重新修炼
几段小代码解释Python命令式编程和函数式编程
所谓命令式编程,是指How to do,要通过指令告诉计算机如何一步一步地完成预定任务;而所谓函数式编程,可理解为What to do,只需要通过简单的指令告诉计算机要做什么就可以了,代码更加简洁、易理解、易维护和易并行。本文通过一个小问题来演示命令式编程和函数式编程在Python中的用法。 # 创建列表 lst = list(range(10)) print(lst) # 下面的代码使用不同方法创建新列表,新列表中的元素是lst列表中的对应元素加5 # 命令式编程,循环 result = [] for i
Python小屋屋主
2018/04/16
6860
命令式到函数式编程
应用场景:当我们用到 if-elseif-else 的时候,可以考虑使用 Optional 语义。 举例说明:
lambeta
2018/08/17
3900
【小程序】声明式和编程式导航传参
tabBar 页面指的是被配置为 tabBar 的页面。 在使用 <navigator> 组件跳转到指定的 tabBar 页面
陶然同学
2023/02/24
5040
【小程序】声明式和编程式导航传参
进攻式和防御式编程
"进攻式编程",指的是一种编程策略,它与传统的防御性编程策略(程序员负责防止或处理可能发生的错误和异常)不同。
JusterZhu
2023/09/21
4260
进攻式和防御式编程
Jetpack Compose | 声明式 UI 编程的革命
下载地址 developer.android.google.cn/studio/prev… ,这里下载的是 2020.3.1 版的AndroidStudio 。
张风捷特烈
2021/03/04
1.7K0
Jetpack Compose | 声明式 UI 编程的革命
Spring的编程式事务和声明式事务
事务管理对于企业应用来说是至关重要的,当出现异常情况时,它也可以保证数据的一致性。 Spring事务管理的两种方式 spring支持编程式事务管理和声明式事务管理两种方式。 编程式事务使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 声明式事务是建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行
nnngu
2018/04/04
1.7K0
Spring编程式和声明式事务的区别
Spring提供了对编程式事务和声明式事务的支持,编程式事务允许用户在代码中精确定义事务的边界,而声明式事务(基于AOP)有助于用户将操作与事务规则进行解耦。 简单地说,编程式事务侵入到了业务代码里面,但是提供了更加详细的事务管理;而声明式事务由于基于AOP,所以既能起到事务管理的作用,又可以不影响业务代码的具体实现。
用户7999227
2021/10/07
2.5K0
跟着Kubernetes学设计—声明式or命令式
我们知道k8s是基于声明式设计的系统,我们只管告诉k8s我们想要达到的系统状态,至于怎么达到,是k8s自身需要处理的事情,比如下面的yaml:
tunsuy
2023/09/20
1570
跟着Kubernetes学设计—声明式or命令式
前几天有个同学问我,“什么是响应式编程”?另,它和函数式编程有啥区别?
前几天有个同学问我,啥叫响应式编程?当时我正在讲课没顾得上回他。今天晚上仔细写个文章回复他,顺便我自己也学习一下。 响应式编程的英文名,Reactive Programming,那就是针对响应的呗。那啥叫响应呢?你烧水呢,水烧开了,水壶会叫,这就是一下响应了。不要想的太复杂,这些东西都是基于现实世界的需要而来的。 响应式它是依赖于事件的,响应式的代码它的运行不是按代码的顺序,而是跟多个按时间发生的事件有关。可能你会想,依赖事件?这不就是“回调”嘛,但在响应式编程里,这些按时间排列的事件,被称为“流”,s
web前端教室
2018/02/07
1.4K0
前几天有个同学问我,“什么是响应式编程”?另,它和函数式编程有啥区别?
声明和定义有什么区别
问题 C/C++ 中,声明和定义有什么区别? 回答 1. 声明不分配存储空间,定义会分配。 定义会实实在在地创造这个东西,而声明只是告诉编译器有这么个东西,它的创造在别处。 extern int bar; // 声明 extern int g(int, int); // 声明 double f(int, double); // 声明 class foo; // 声明 int bar; // 定义 int g(int lhs, int rhs) {return lhs*rhs;} // 定义 double
ClearSeve
2022/02/11
1.5K0
编程范式--函数式编程
题目:读入一个文本文件,确定所有单词的使用频率并从高到低排序,打印出所有单词及其频率的排序列表。
Wu_Candy
2022/07/04
7910
编程范式--函数式编程
java函数式编程实例(函数式编程实例)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128794.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/28
1.2K0
「R」Shiny:响应式编程(二)响应式编程
一个网页应用仅有输入控件或输出控件无疑是枯燥的。Shiny 真正的魔法在于它同时包含两者。
王诗翔呀
2020/07/02
2.6K0
响应式编程
在传统的请求响应模型中,每个客户端请求会分配一个线程,这些线程会一直等待直到请求完成,这可能导致资源的浪费和性能瓶颈。响应式编程使用异步非阻塞的方式,通过订阅和处理事件流来处理请求。
Jimmy_is_jimmy
2023/07/31
3690
响应式编程
函数式编程
原文链接:https://note.noxussj.top/?source=cloudtencent 什么是函数式编程? 函数式编程(Functional Programming, FP)就是利用纯函
菜园前端
2023/05/30
3640
函数式编程
函数式编程已经有比较长的历史了,如今的动态语言,很大程度上也受到了函数式编程(反过来名叫命令式编程)的启发。
四火
2022/07/15
6070
函数式编程

相似问题

函数式,声明式和命令式编程?

22.7K

函数式编程中如何存在时间函数?

2436

阶梯式的岗位技术培训认证体系、云技术基础认证有什么区别?

067

NodeJs服务器有分布式功能吗?

2203

securecrt和winscp有什么区别?

41.7K
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
到家集团 | 技术VP擅长5个领域
腾讯云TDP | KOL擅长5个领域
擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文