rubyの予約語の意味まとめ

## はじめに
rubyの予約語についてまとめたくなったので、予約語とその意味をまとめます。

## 予約語
予約語はクラス名、変数名などに用いることはできない。
ただし接頭辞$, @、@@が先頭についたものは予約語とは見なされない。
[ruby リファレンス](https://docs.ruby-lang.org/ja/latest/doc/spec=2flexical.html)
| 予約語       | 意味                                                                                           | 例                                                                                  |
|--------------|------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
| `BEGIN`      | プログラムが実行される前に実行されるコードを定義。                                         | ``` BEGIN { puts "プログラム開始前に実行" } ```                                 |
| `END`        | プログラムが終了する前に実行されるコードを定義。                                           | ``` END { puts "プログラム終了前に実行" } ```                                   |
| `alias`      | メソッドや変数に対して別名を与える。                                                           | ``` alias new_name original_name ```                                            |
| `and`        | 論理AND演算子。`&&`と同様だが、優先順位が異なる。                                          | ```a = true and false ```                                                      |
| `begin`      | 例外処理の開始を示す。`rescue`と組み合わせて使用される。                                  | ```begin # 例外が発生する可能性のあるコード rescue # 例外が発生した場合の処理 end ``` |
| `break`      | ループを終了。                                                                          | ```for i in 1..10 break if i > 5 end ```                                       |
| `case`       | 複数の条件を評価する場合に使用される選択構造。                                               | ```case expression when value1 # 処理 when value2 # 処理 else # その他の処理 end ``` |
| `class`      | クラスを定義。                                                                            | ```class MyClass # クラスの内容 end ```                                        |
| `def`        | メソッドを定義。                                                                          | ```def my_method # メソッドの内容 end ```                                      |
| `defined?`   | 式が定義されているかどうかを確認。                                                         | ```puts defined?(some_variable) ```                                            |
| `do`         | ブロックを定義。`do...end`構文で使用される。                                             | ```[1, 2, 3].each do \|number\| puts number end ```                              |
| `else`       | `if`, `unless`, `case`構文の一部として、条件が成立しない場合の処理を定義。                  | ```if condition # 条件が真の場合の処理 else # 条件が偽の場合の処理 end ```     |
| `elsif`      | `if`構文の一部として、複数の条件を評価する。                                                   | ```if condition1 # 処理 elsif condition2 # 処理 else # その他の処理 end ```   |
| `ensure`     | 例外処理において、例外の発生有無に関わらず必ず実行される処理を定義。                      | ```begin # 例外が発生する可能性のあるコード ensure # 必ず実行される処理 end ``` |
| `false`      | 論理値の偽。                                                                          | ```false ```                                                                   |
| `for`        | ループ構文の一種。                                                                          | ```for element in collection # 各要素に対する処理 end ```                      |
| `if`         | 条件が成立する場合の処理を定義。                                                           | ```if condition # 条件が真の場合の処理 end ```                                 |
| `in`         | `for`ループ構文の一部として使用される。                                                       | ```for element in collection # 各要素に対する処理 end ```                      |
| `module`     | モジュールを定義。 | ```module MyModule # モジュールの内容 end ```                                  |
| `next`       | ループ内で次の反復に進むために使用される。                                                     | ```for i in 1..5 next if i == 3 puts i end ```                                 |
| `nil`        | オブジェクトが存在しないことを示す。                                                         | ```nil ```                                                                     |
| `not`        | 論理NOT演算子。\!と同様だが、優先順位が異なる。                                           | ```not true ```                                                                |
| `or`         | 論理OR演算子。\|\|と同様だが、優先順位が異なる。                                           | ```a = false or true ```                                                       |
| `redo`       | ループの現在の反復を再実行。                                                               | ```for i in 0..5 retry if i > 2 end ```                                        |
| `rescue`     | 例外が発生した場合の処理を定義。                                                           | ```begin # 例外が発生する可能性のあるコード rescue # 例外が発生した場合の処理 end ``` |
| `retry`      | `rescue`節内で使用して、再度`begin`節から処理をやり直す。                                     | ```begin # 例外が発生する可能性のあるコード rescue # 例外が発生した場合の処理 retry end ``` |
| `return`     | メソッドからの戻り値を指定。                                                               | ```def my_method return value end ```                                          |
| `self`       | 現在のオブジェクトを指す。                                                                   | ```self ```                                                                    |
| `super`      | 親クラスのメソッドを呼び出す。                                                               | ```class MyClass < ParentClass def my_method super end end ```                 |
| `then`       | `if`や`case`の条件式とその処理を区切るために使用される。省略可能。                         | ```if condition then # 条件が真の場合の処理 end ```                            |
| `true`       | 論理値の真を表す。                                                                          | ```true ```                                                                    |
| `undef`      | メソッドの定義を解除する。                                                                     | ```undef my_method ```                                                         |
| `unless`     | 条件が成立しない場合の処理を定義。`if not`と同等。                                      | ```unless condition # 条件が偽の場合の処理 end ```                             |
| `until`      | 条件が成立するまでのループを定義。`while not`と同等。                                   | ```until condition # 処理 end ```                                              |
| `when`       | `case`構文の一部として、各条件を定義。                                                     | ```case expression when value1 # 処理 when value2 # 処理 end ```               |
| `while`      | 条件が成立する間、ループを実行。                                                           | ```while condition # 処理 end ```                                              |
| `yield`      | メソッドからブロックに制御を渡す。                                                           | ```def my_method yield end my_method { puts "ブロックが実行されました" } ```   |
| `__LINE__`   | 現在のソースコードの行番号を返す。                                                           | ```puts __LINE__ ```                                                           |
| `__FILE__`   | 現在のソースファイルの名前を返す。                                                           | ```puts __FILE__ ```                                                           |
| `__ENCODING__`| 現在のソースファイルのエンコーディングを返す。                                              | ```puts __ENCODING__ ```                                                       |

## まとめ
調べれば分かりますが、知っておけばその分、処理を考えるときの材料が増えます。