我了解到表达式是可以赋予某些值的任何内容,例如2 + X
,而语句则是对计算机执行某些操作的任何指令,例如print("hi")
。
接下来的代码行呢?
X = someFunction() + 2
someFunction()
返回一些数值(我认为很多语言都不会编译该代码),因此someFunction() + 2
是“产生某种值的东西”(又称表达式)。
但是,someFunction()
是要执行的代码,因此是一条语句。
我的问题:
通常,代码行等于某个值,但它们也是要执行的指令。这些代码行考虑了什么?
在某些称为“功能语言”的计算机语言中,包括打印“ hi”的代码在内的所有内容都是表达式。在另一种极端情况下,您可以使用机器语言编写代码(因此,您(而不是编译器)正在确定应由哪种字节序列构成可执行程序),并且在该级别上,几乎所有内容(甚至在内容上加上2)都是“指令计算机执行某些操作”。
我使用了许多不同的计算机语言,据我所知,每种情况下都有一些文档来定义使用该特定语言进行声明的内容(如果确实该语言甚至具有“语句”的概念)。该定义基于语法,而不是基于代码的作用。
例如,在C或C ++中,如果您编写
{ x + 2; }
然后从技术上讲“ x + 2;” 是一个声明。这是一条无用的语句,它什么也不做,但是从语法上说,它仍然是一条语句。实际上,用C编写语句的一种方法是将分号附加到表达式(http://msdn.microsoft.com/en-us/library/1t054cy7.aspx)。您甚至不需要该表达式;分号本身可以是一条语句(http://msdn.microsoft.com/en-us/library/h7zyw61x.aspx)。
顺便说一句,在C ++中,诸如(x + 2)之类的表达式中的“ +”实际上可能是函数调用。因此,如果您说任何调用函数的内容是一条语句,那么(x + 2)将是或至少可能是C ++中的一条语句。但我不知道有任何机构以这种方式定义它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句