运算符优先权
| 类别 | 操作者 | 关联性 |
|---|---|---|
| 后缀 | () [] |
左到右 |
| 一元 | ! ~ |
右到左 |
| 乘 | * / % |
左到右 |
| 添加剂 | + - |
左到右 |
| 转移 | >> >>> << |
左到右 |
| 相关的 | > >= < <= |
左到右 |
| 相等 | == != |
左到右 |
| 按位和 | & |
左到右 |
| 按位 xor | ^ |
左到右 |
| 按位或 | | |
左到右 |
| 逻辑和 | && |
左到右 |
| 逻辑或 | || |
左到右 |
| 分配 | = += -= *= /= %= >>= <<= &= ^= |
= |
| 逗号 | , |
左到右 |
Scala 中的编程基于运算符中的第一个字符给出以下概述。例如,> 是运算符 >>> 中的第一个字符:
| 操作者 |
|---|
| (所有其他特殊字符) |
* / % |
+ - |
: |
= ! |
< > |
& |
^ |
| |
| (所有字母) |
| (所有赋值运算符) |
此规则的一个例外是关于赋值运算符,例如+=,*= 等。如果运算符以相等的字符(=)结尾且不是比较运算符 <=,>=,== 或 != 之一,则运算符的优先级与简单的赋值相同。换句话说,低于任何其他运算符的。