Rustの演算子の優先順位 Operator precedence
- 次の表で、演算子を優先順位降順に並べる。
- 単項演算子は二項演算子より優先されることが分かる。
- より正確には、後置単項演算子 > 前置単項演算子 > 二項演算子 の順。
- 「非結合」演算子では、その結合を丸括弧
(,)で明示しないと文法エラーとなる。a == b == c- Error(a == b) == c- OK
- 単項演算子は二項演算子より優先されることが分かる。
- フィールド演算子
.は?より強い。よって&self.hoge?は&((self.hoge)?)となる。
| 演算子 | 結合性 |
|---|---|
? |
|
単項 - * ! & &mut |
|
as : |
左結合 |
* / % |
左結合 |
+ - |
左結合 |
<< >> |
左結合 |
& |
左結合 |
^ |
左結合 |
| |
左結合 |
== != < > <= >= |
非結合 |
&& |
左結合 |
|| |
左結合 |
.. ..= |
非結合 |
<- |
右結合 |
= += -= *= /= %= &= |= ^= <<= >>= |
右結合 |