Erlang - 运算符
运算符是告诉编译器执行特定数学或逻辑操作的符号。
Erlang 有以下类型的运算符 −
- 算术运算符
- 关系运算符
- 逻辑运算符
- 按位运算符
算术运算符
Erlang 语言与任何语言一样支持普通算术运算符。 以下是 Erlang 中可用的算术运算符。
| 运算符 | 描述 | 示例 |
|---|---|---|
| + | 两个操作数相加 | 1 + 2 将给出 3 |
| − | 从第一个操作数中减去第二个操作数 | 1 - 2 将给出 -1 |
| * | 两个操作数相乘 | 2 * 2 将给出 4 |
| / | 分子除以分母 | 2 / 2 将给出 1 |
| rem | 第一个数字除以第二个数字的余数 | 3 rem 2 将给出 1 |
| div | div 将执行除法并返回整数组件。 | 3 div 2 将给出 1 |
关系运算符
关系运算符允许比较对象。 以下是 Erlang 中可用的关系运算符。
| 运算符 | 描述 | 示例 |
|---|---|---|
| == | 测试两个对象之间的相等性 | 2 = 2 将给出 true |
| /= | 测试两个对象之间的差异 | 3 /= 2 将给出 true |
| < | 检查左侧对象是否小于右侧操作数。 | 2 < 3 将给出 true |
| =< | 检查左侧对象是否小于或等于右侧操作数。 | 2 =<3 将给出 true |
| > | 检查左侧对象是否大于右侧操作数。 | 3 > 2 将给出 true |
| >= | 检查左侧对象是否大于或等于右侧操作数。 | 3 >= 2 将给出 true |
逻辑运算符
这些逻辑运算符用于计算布尔表达式。 以下是 Erlang 中可用的逻辑运算符。
| 运算符 | 描述 | 示例 |
|---|---|---|
| or | 这是逻辑或"or"运算符 | true 或 true 将给出 true |
| and | 这是逻辑和"and"运算符 | 正确和错误将给出错误 |
| 不是 | 这是逻辑非"not"运算符 | 不为假则为真 |
| xor | 这是逻辑独占"xor"运算符 | True 异或 false 将给出 true |
按位运算符
Erlang 提供了四种按位运算符。 以下是 Erlang 中可用的按位运算符。
| 序号 | 运算符和描述 |
|---|---|
| 1 |
band 这是按位"与"运算符 |
| 2 |
bor 这是按位"或"运算符 |
| 3 |
bxor 这是按位"异或"或异或运算符 |
| 4 |
bnot 这是按位求反运算符 |
以下是展示这些运算符的真值表 −
| p | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
运算符优先级
下表按优先级降序显示了 Erlang 运算符的运算符优先级及其关联性。 运算符优先级和结合性用于确定无括号表达式中的计算顺序。
| 运算符 | 关联性 |
|---|---|
| : | |
| # | |
| bnot,not | |
| /,*,div,rem,band,and | Left associative |
| +,-,bor,bxor,or,xor | Left associative |
| ==,/=,=<,<,>=,> |

