3.3.1 算数运算符

运算符 说明 范例 结果
+ 加(或正号)(或字符串连接符) 1 + 6 7
- 1 - 6 -5
* 2 * 3 6
/ 4 / 2 2
% 取余 3 % 2 1

📝 说明

  • 对于除号,整数除和小数除有区别
  • 对于取余,等价于 a % b = a - a / b * b
  • Scala 没有 ++/— 操作,只能通过 +=/-= 实现

    3.3.2 关系运算符

    关系运算符就是比较两个数组,结果为 Boolean 类型
运算符 说明 范例 结果
== 相等于 3 == 3 true
!= 不等于 3 != 3 false
>= 大于等于 2 >= 3 false
<= 小于等于 2 <= 3 true
> 大于 2 > 3 false
< 小于 2 < 3 true

📝 说明

  • = ”属于赋值运算符,不要和“==”混肴
  • 两个浮点数进行比较时,应该保证数据类型一致

    3.3.3 位运算符

    | 位运算符 | 说明 | 范例 | | :—-: | :—-: | :—-: | | & | 按位与运算 | 9 & 3 → 1 | | | | 按位或运算 | 9 | 3 → 11 | | ^ | 按位异或运算 | 9 ^ 3 → 10 | | ~ | 按位取反运算 | ~9 → -10· | | << | 左移运算 | 9 << 3 → 72 | | >> | 右移运算 | -9 >> 3 → -2 | | >>> | 无符号右移运算 | -9 >>> 3 → 536870910 |

3.3.4 逻辑运算符

逻辑运算符用于连接多个条件,结果为 Boolean 类型

运算符 说明 范例 结果
&& 逻辑与(全真才为真) 3 == 3 && 2 > 3 false
|| 逻辑或(有真就为真) 3 != 3 || 2 > 3 false
! 逻辑非(取反,真假颠倒) !(2 >= 3) true

3.3.5 赋值运算符

运算符 说明 范例
= 右边的值赋给左边 var age = 22
+= 相加后赋值 a += 2 → a = a + 2
-= 相减后赋值 a -= 2 → a = a - 2
*= 相乘后赋值 a = 2 → a = a 2
/= 相除后赋值 a /= 2 → a = a / 2
%= 取余后赋值 a %= 2 → a = a % 2
<<= 左移后赋值 a <<= 2 → a = a << 2
>>= 右移后赋值 a >>= 2 → a = a >> 2
&= 按位与后赋值 a &= 2 → a = a & 2
^= 按位异或后赋值 a ^= 2 → a = a ^ 2
|= 按位或后赋值 a |= 2 → a = a | 2

📝 说明

  • 赋值运算以及“ !~ ”运算的运算顺序都是从右往左
  • 运算符左边是变量,右边可以是表达式、变量、常量值
  • Scala 中不支持三目运算符,使用 if-else 方式实现

    3.3.6 运算符优先级

    运算符的优先级从高到低的顺序如下表格:
分类 运算符 关联
Postfix () [] 从左到右
Unary ! ~ 从右到左
Multiplicative * / % 从左到右
Additive + - 从左到右
Shift >> >>> << 从左到右
Relational > >= < <= 从左到右
Equality == != 从左到右
Bitwise AND & 从左到右
Bitwise XOR ^ 从左到右
Bitwise OR | 从左到右
Logical AND && 从左到右
Logical OR || 从左到右
Assignment = += -= *= /= %= >>= <<= &= ^= |= 从右到左
Comma , 从左到右