语句和关键字有啥区别?
Posted
技术标签:
【中文标题】语句和关键字有啥区别?【英文标题】:What is the difference between a statement and a keyword?语句和关键字有什么区别? 【发布时间】:2014-05-26 21:03:26 【问题描述】:calling return
a statement 之后,在 cmets 中给我带来了:
return
不是语句,它是开始返回语句的关键字。
语句和开始语句的关键字有什么区别?
【问题讨论】:
句子和以句子开头的名词有什么区别? ;-) @delnan 这是否意味着return
是一个关键字,而return true;
是一个语句?
@delnan 很好的解释,它很好地澄清了事情!如果您将其添加为完整答案(进一步扩展一点),我将非常高兴,以便我可以接受。
【参考方案1】:
我的语言律师指出,C 标准 n1570 如下所述。
S6.4.1 关键字包括:
返回
S6.8 说:
语句指定要执行的操作。
S6.8.6。 return 语句被定义为包含分号。
返回表达式(选择);
回答这个问题,如果不像其他一些答案那样有趣的话。
【讨论】:
【参考方案2】:句子和以句子开头的名词有什么区别? ;-)
return
是一个关键字,这意味着它是该语言的几个基本术语(标记)之一。它们具有特权,每个都保留用于特殊目的并具有特殊含义(将此与工厂标识符/名称的运行进行比较)。
语句是(广义上的 - 语言之间的具体差异)语言的更高级别单元,类似于自然语言中的(特定种类的)句子。语句包括return 1+1;
和foo(bar);
,但一般不包括1+1
或foo(bar)
之类的表达式。
关键字通常构成语句的一部分(例如,return
引入了一个 return 语句),但它们从不单独做出完整的语句 - 即使 return;
仍然需要一个语句终止符。
【讨论】:
关于最后一句,这种情况下的分号会是必需的语句终止符吗? @IQAndreas 在我的示例中,我使用了类似 C 的语法。其他语言有其他语句终止符(Python 中的换行符)或语句分隔符(Pascal 中的begin stmt1; stmt2 end
)。实际上,有些语言根本没有语句的概念。【参考方案3】:
关键字(有时称为保留字)是在编程语言中具有特殊含义的某个词。例如,在 C、C++ 和 Java 中,int
、void
和 break
是关键字,而在 Python 中 def
是关键字。
在命令式编程语言中,语句是程序应该执行的命令。比如语句
x = y * 137;
表示“评估表达式x = y * 137
”,而语句
while (true)
x++;
表示“永远继续增加x
。”
某些关键字可以在语句中使用。比如语句
break;
表示“跳出当前循环”,而语句
return true;
(由return
和true
关键字组成)表示“退出当前函数/方法,产生结果true
”。这些分别称为“break statements”和“return statements”,以这种方式使用这些术语并没有错。但是,break
和 return
本身并不是陈述。注意语法是
break;
用分号和
return [opt-value];
带有可选值和分号。我认为说调用 return
和 break
语句是不正确的有点牵强,因为虽然这样做在技术上是不正确的,但每个人都会明白你的意思。
请注意,有些语句可能由关键字组成,但并非所有关键字都是语句。比如你不能写
public;
或
volatile;
使用我知道的任何编程语言。
希望这会有所帮助!
【讨论】:
非常轻微的吹毛求疵:关键字和保留字重叠并且经常被放在一起,但又是不同的:有些字被保留但没有给它们关键字状态,它们没有意义并且不能使用(例如@ 987654342@ 在 Java 中)。另一方面,上下文关键字(例如 C# 中的yield
)在特定位置用作关键字,但不是保留的,可以在任何允许标识符的地方用作标识符。以上是关于语句和关键字有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章