Skip to content

Instantly share code, notes, and snippets.

@kumavale
Last active May 5, 2024 14:11
Show Gist options
  • Save kumavale/2d5408d0cae4c3ea9bb21f11622af9d2 to your computer and use it in GitHub Desktop.
Save kumavale/2d5408d0cae4c3ea9bb21f11622af9d2 to your computer and use it in GitHub Desktop.

Rustの演算子の優先順位 Operator precedence

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

Reference

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment