运算符是语句的子集吗?

Are operators a subset of statements?

基本上在所有高级语言中(据我所知)我们有两大类语言机制来创建程序:语句和表达式。

通常语句由语言关键字的某些子集表示:if/else/switch、for/foreach/while、{}(或BEGIN/END)等

表达式由文字(代表一些数据)和运算符表示:文字:1、2、-100、testTest等;运算符:+、-、/、*、==、===等

如果我们更深入地思考,我们会注意到语句通常回答问题 "what?" 而表达式 -- 回答问题 "how?"。语句代表动作,表达式代表动作的上下文。

然后我们可能会再次查看表达式的部分:文字和运算符。运算符也是动作。

我的问题又来了:运算符是语句的子集吗?

P.S。通常,我的理解是语句和表达式一起使用以针对某些编程目标。此类别的分离主要是理论上的。

一般来说,"operator"描述了一种句法形式,可用于产生表达式、语句或其他class语言实体。因此,从技术上讲,您问题的答案是 "no".

例如,Haskell 使用 | 运算符生成代数类型规范,它既不是表达式也不是语句:

data Maybe a = Just a | Nothing