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
==,/=,=<,<,>=,>