Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)


在Erlang中,运算符被用于执行各种类型的计算和操作,包括比较、数值运算、移位和逻辑运算。下面是对这些运算符的简要概述:

### 比较运算符

用于比较两个值的大小或是否相等。

- `==`:等于(注意:在Erlang中,对于非数字类型,推荐使用`=:=`进行比较,因为它不会进行自动类型转换)

- `/=`:不等于

- `<`:小于

- `>`:大于

- `<=`:小于或等于

- `>=`:大于或等于

### 数值运算符

用于执行数学运算。

- `+`:加法

- `-`:减法

- `*`:乘法

- `/`:除法(整数除法会向下取整,浮点数除法保留小数)

- `div`:整数除法,结果向下取整

- `mod`:求余

- `rem`:求余(与`mod`类似,但在处理负数时有所不同)

### 移位运算符

用于对数的二进制表示进行移位操作。

- `bsl`:位左移(bitwise shift left)

- `bsr`:位右移(bitwise shift right,逻辑右移,高位补0)

- `band`:位与(bitwise AND)

- `bor`:位或(bitwise OR)

- `bxor`:位异或(bitwise XOR)

- `bnot`:位非(bitwise NOT)

### 逻辑运算符

用于逻辑运算,通常用于布尔值的组合。

- `and`:逻辑与(如果两边的值都为真,则结果为真)

- `or`:逻辑或(如果两边的值中至少有一个为真,则结果为真)

- `xor`:逻辑异或(两边的值一真一假时,结果为真)

- `not`:逻辑非(取反)

请注意,Erlang是一种函数式编程语言,其运算符的使用方式可能与其他一些编程语言有所不同。特别是比较运算符`==`,在Erlang中用于数字比较时通常可以正常工作,但比较复杂数据结构(如列表、元组等)时,建议使用`=:=`来避免类型自动转换可能带来的意外。