首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >表达式与语句

表达式与语句
EN

Stack Overflow用户
提问于 2008-08-21 00:28:00
回答 20查看 76.8K关注 0票数 464

我问的是c#,但我认为在大多数其他语言中也是如此。

有没有人对表达和陈述有一个很好的定义,区别是什么?

EN

Stack Overflow用户

发布于 2008-08-21 00:30:31

表达式可以通过求值来获得值,而语句不返回值(它们的类型为void)。

当然,函数调用表达式也可以被认为是语句,但是除非执行环境有一个特殊的内置变量来保存返回的值,否则就无法检索它。

面向语句的语言要求所有的过程都是语句的列表.面向表达式的语言,可能都是函数式语言,是表达式的列表,或者在LISP的情况下,表示表达式列表的一个长的S-表达式。

虽然这两种类型都可以组合,但只要类型匹配,大多数表达式都可以任意组合。每种类型的语句都有自己的方法来组成其他语句,如果它们能够做到这一点的话。Foreach和if语句要么需要一个状态,要么所有的从属语句一个接一个地放在一个语句块中,除非子语句允许它们自己的子语句。

语句也可以包括表达式,其中表达式实际上并不包括任何语句。但是,一个例外是lambda表达式,它表示一个函数,因此它可以包含任何函数可以冻结的东西,除非语言只允许有限的lambda,比如Python的单表达式lambdas。

在基于表达式的语言中,您所需要的只是函数的一个表达式,因为所有控件结构都返回一个值(其中很多返回零)。不需要返回语句,因为函数中的最后一个求值表达式是返回值。

票数 7
EN
查看全部 20 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档