Erlang具有以下类型的运算符-

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 按位运算符

算术运算符

Erlang语言支持普通的算术运算符,就像任何一种语言一样,以下是Erlang中可用的算术运算符。

运算符 描述 示例
+ 1 + 2=3
- 1 - 2=-1
* 2 * 2=4
/ 2/2=1
rem 余数 3 rem 2=1
div 整数除法
3 div 2=1
-module(helloLearnfk). 
-export([start/0]). 

start() -> 
   X = 40, 
   Y = 50, 
   
   Res1 = X + Y, 
   Res2 = X - Y, 
   Res3 = X * Y, 
   Res4 = X / Y, 
   Res5 = X div Y, 
   Res6 = X rem Y, 
   
   io:fwrite("~w~n",[Res1]), 
   io:fwrite("~w~n",[Res2]), 
   io:fwrite("~w~n",[Res3]), 
   io:fwrite("~w~n",[Res4]), 
   io:fwrite("~w~n",[Res5]), 
   io:fwrite("~w~n",[Res6]).

上面程序的输出将是-

90
-10
2000
0.8
0
40

关系运算符

关系运算符允许比较对象。 以下是Erlang中可用的关系运算符。

运算符 描述 示例
== 等于
2=2=true
/= 不等于
3 /= 2=true
< 小于 2 < 3=true
=< 小于或等于 2 =<3=true
> 大于  > 2=true
>= 大于或等于 3 >= 2=true
-module(helloLearnfk). 
-export([start/0]). 

start() -> 
   io:fwrite("~w~n",[3==2]), 
   io:fwrite("~w~n",[3/=2]), 
   io:fwrite("~w~n",[3<2]), 
   io:fwrite("~w~n",[3=<2]), 
   io:fwrite("~w~n",[3>2]), 
   io:fwrite("~w~n",[3>=2]).

上面程序的输出将是-

false
true
false
false
true
true

逻辑运算符

这些逻辑运算符用于布尔表达式。 以下是Erlang中可用的逻辑运算符。

运算符 描述 示例
or true or false=true
and true and false=flase;
not not false=true
xor true xor false=true
-module(helloLearnfk). 
-export([start/0]). 

start() -> 
   io:fwrite("~w~n",[true or false]),  
   io:fwrite("~w~n",[true and false]), 
   io:fwrite("~w~n",[true xor false]), 
   io:fwrite("~w~n",[not false]).

上面程序的输出将是-

true
false
true
true

按位运算符

Erlang提供了四个按位运算符。以下是Erlang中可用的按位运算符。

Sr.No. 运算符&描述
1

band

这是按位"and"运算符

2

bor

这是按位"or"运算符

3

bxor

这是按位"xor"或"异或"运算符

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
-module(helloLearnfk). 
-export([start/0]). 

start() -> 
   io:fwrite("~w~n",[00111100 band 00001101]), 
   io:fwrite("~w~n",[00111100 bxor 00111100]), 
   io:fwrite("~w~n",[bnot 00111100]), 
   io:fwrite("~w~n",[00111100 bor 00111100]).

上面程序的输出将是-

76
0
-111101
111100

参考链接

https://www.learnfk.com/erlang/erlang-operators.html