Operators — Bitwise, Ternary & Special

DEX455 - 编写 Apex 代码:数据类型、集合、变量与运算符完全参考

📄 第 99 页 🎬 视频课程

课程章节介绍

同学们,今天我们来看一下Apex里一些容易忽略,但又很实用的运算符细节。我会尽量讲得简单些,你一听就懂。 首先,Apex支持,按位运算符,。这些符号你可能见过:与(&)、或(竖线)、异或(^)、取反(~),还有位移运算符。它们直接对二进制位进行操作,比如权限控制、标志位处理时会用到。不过日常开发用得不多,咱们先有个印象,用到再查就行。 接下来,,加法运算符(+), 有一些特殊规则,这个要记住。 如果两个都是特定的资源类型(这里的RST你可以理解成一种特殊数值类型),那么RST + RST仍然得到RST。 如果是Date(日期)加上一个RST(整数),结果是新的Date,它会在原日期上加多少天。 如果是Datetime(日期时间)加上一个RST或者Double(小数),它会加上带小数的天数,比如加1.5天,就是一天半后的那个时间点。 还有字符串连接,只要你用一个字符串和任何非空类型相加,就会自动拼成字符串。就像 "Hello " + 123 会变成 "Hello 123"。 最后,,除法有一个重要的警告,,这个很多新手会掉坑里。 如果你用两个RST(整数类型)相除,Apex会先把结果的小数部分去掉,再隐式转换为Double。 比如,5 / 3,正常数学结果是1.666...,但Apex的处理是:先做整数除法,得到整数部分1(小数部分直接截掉,相当于向零取整),然后转成Double,所以最终结果是1.0,而不是1.666...。 如果你想保留小数,只要把其中一个操作数写成Double就行,比如 5.0 / 3 或者 5 / 3.0,结果就是1.6666666666666667。 所以,当你希望得到精确小数时,一定要记得用小数去参与除法。 好了,这几个要点记住了,写代码时就能避开不少小坑。下节课我们再讲别的。

关键词

Apex Salesforce Developer Guide