一个运算符是一个符号,用于告诉编译器来执行指定的数学运算和逻辑运算。Scala 含有丰富的内置运算符,包括以下几种类型:
算术运算符
运算符 |
描述 |
+ |
加号 |
- |
减号 |
* |
乘号 |
/ |
除号 |
% |
取余 |
关系运算符
运算符 |
描述 |
== |
等于 |
!= |
不等于 |
> |
大于 |
< |
小于 |
>= |
大于等于 |
<= |
小于等于 |
逻辑运算符
运算符 |
描述 |
&& |
逻辑与 |
|| |
逻辑或 |
! |
逻辑非 |
位运算符
位运算符用来对二进制位进行操作:
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 |
运算符 |
描述 |
& |
按位与运算符 |
| |
按位或运算符 |
^ |
按位异或运算符 |
~ |
按位取反运算符 |
<< |
左移动运算符 |
>> |
右移动运算符 |
>>> |
无符号右移 |
赋值运算符
运算符 |
描述 |
= |
简单的赋值运算,指定右边操作数赋值给左边的操作数 |
+= |
相加后再赋值,将左右两边的操作数相加后再赋值给左边的操作数 |
-= |
相减后再赋值,将左右两边的操作数相减后再赋值给左边的操作数 |
*= |
相乘后再赋值,将左右两边的操作数相乘后再赋值给左边的操作数 |
/= |
相除后再赋值,将左右两边的操作数相除后再赋值给左边的操作数 |
%= |
求余后再赋值,将左右两边的操作数求余后再赋值给左边的操作数 |
<<= |
按位左移后再赋值 |
>>= |
按位右移后再赋值 |
&= |
按位与运算后赋值 |
^= |
按位异或运算符后再赋值 |
|= |
按位或运算后再赋值 |
运算符的重载
从语法上来说scala是没有运算符的。Scala的运算符实际上是方法名,如1 + 2实际上就是1.+(2)。我们可以将之视为运算符,是因为在Scala中,如果方法的参数小于等于1个的话,那么“.”和括号就都是可选的。