shou2017.com
JP / EN

Rubyの演算子でオーバライド(再定義)できないもの

Sat Feb 17, 2018
Sat Aug 10, 2024

ruby資格でよく出てくるので復習と理解を深めるためにもメモ。

オーバーライド(再定義)できない演算子(制御構造)とできる演算子一覧

+@や-@は単項の+と-で、+50や-36のような式の演算子を表します。

演算子の組合せである自己代入演算子は再定義できません。+=などもオーバライドできない。

制御構造とは、「順序どおり実行する」「繰り返して実行する」「条件を判断して実行する」のいずれかの構造でプログラムを記述します。こうした構造のことを制御構造と言います。

| できない | できる |
|:-----:|:-----:|
| =     |  \|   |
| ?:    | ^   |
| ..    | &   |  
| ...   | <=> |
| not   | ==  |   
| &&    | ===  |
| and   | =~ |
| \|\|  | > |
| or    | >=   |   
| ::    | <   |
|       | <=    |
|       | <<   |  
|       | >> |
|       | +  |
|       | -   |
|       | * |
|       | / |
|       | %    |  
|       | **  |
|       | ~   |
|       | +@   |  
|       | -@  |
|       | []  |  
|       | []=  |
|       | ` |
|       | ! |
|       | !=   |  
|       | !~  |

演算子と優先順位

+@や-@は単項の+と-で、+50や-36のような式の演算子を表します。

| 優先順位 | 演算子 |
|:-----:|:-----:|
|  | ::  |   
|    | []   |
|    | !  ~  +@     |   
|    | **     |  
|    | -@     |   
|    | *  /  %      |  
|    | +  -     |
|    | <<  >>     |
|    | &     |
|    | \|  ^     |
|    | >  >=  <  <=     |
|    | <=>  ==  ===  !=  =~  !~     |
|    | &&     |
|    | \|\|     |
|    | ..  ...     |
|    | ?:     |
|    | =      |
|    | not    |
|    | and or     |
See Also