课程章节介绍
接下来我们聊聊操作符的优先级。这个概念其实很简单,就是当一行代码里出现好几个操作符的时候,Apex会按什么顺序来执行它们。
你可以把优先级想象成排队,谁优先级高,谁就先被处理。
我们来看看顺序。最高优先级的,是括号和前置的自增自减,比如 `++x` 或 `--y`,这些永远最先算。
然后是那些一元操作符——就是一个操作数的,比如逻辑非 `!`、按位取反,还有类型转换 `(String)`,以及用 `new` 创建对象,它们也排得很靠前。
接着是乘法、除法和取模——乘除运算优先于加减运算,这和我们在学校里学的数学规则一样。
之后是移位操作符,比如 `<<` 和 `>>`,它们排在比较操作符前面。比较操作符呢,比如大于、小于这些,又排在相等性测试前面,也就是 `==` 和 `!=`。
再往后走,是按位与和按位或这类操作,然后是逻辑与 `&&` 和逻辑或 `||`。
还有一个要注意的,空合并操作符 `??` 的优先级比三元操作符 `?:` 要高,这两个别搞混了。
最后,最低优先级的,就是赋值操作符,像 `=`、`+=` 这些,总是最后才执行。
那这么多顺序万一记不住怎么办?很简单,当你觉得不确定的时候,直接用括号来明确你想先算哪一部分,括号里的永远最先执行,而且代码也更清晰易读。
就像以前老师说的,有疑问就加括号,准没错。
关键词
Apex
Salesforce
Developer Guide