表达式(Expression)
缩写:无
简述
在语言语义下可求值并产生一个值(及可能的副作用)的语法构造。字面量、变量引用、运算、函数调用、条件表达式等常属此类。与「语句」相对:表达式强调值,语句强调动作或声明结构;二者边界因语言而异(有的语言几乎一切皆表达式)。
使用场景
书写运算与调用、理解求值顺序、纯表达式语言与语句式语言对比。
实践与应用
• 明确求值顺序与短路运算对副作用的影响。
• 复杂表达式拆局部变量以利读与调试。
• 纯函数式风格中尽量减少表达式内隐含副作用。
注意事项
• 副作用藏在表达式里会使推理与测试变难。
• 运算符优先级导致「以为的顺序」与实际不符。
• 未定义的求值顺序(部分语言参数求值)带来隐患。
对比与易混
| 表达式 | 语句 | |
|---|---|---|
| 结果 | 通常得到一个值 | 推进控制或声明 |
| 例子 | a + b、函数调用 |
if、赋值语句、返回 |
关联术语
• 语句:组织动作与控制流,未必产生可用值
• 求值:计算表达式得到结果
• 运算符:表达式内的运算记号
• 副作用:表达式求值时可能附带的状态变化