参照)も指定できます(演算子式の定義参照)。true仮引数にデフォルト式が与えられた場合、メソッド呼び出しで実引数を省略したときのデフォルト値になります。i+1番目以降でも全てデフォルト値を指定するか、可変長引数を利用しなければなりません(詳細は後述)。デフォルト式の評価は呼び出し時にメソッド定義内のコンテキストで行われます。この引数に格納されます。引数などと呼ばれる機能です。以降では可変長引数よりも後にまだ通常の引数を置くことができます。あるとこのメソッドに与えられているブロックが手続きオブジェクト(Proc)としてこの引数に格納されます。これは、イテレータを定義する方法の一つです。使う方法などもあります。ブロックが与えられなかった場合のブロック引数の値はnilです。Ruby!メソッド定義において、仮引数はその種類毎に以下の順序でしか指定することはできません。いずれも省略することは可能です。例外処理については制御構造/begin参照。したオブジェクトを返します。演算子式において、「再定義可能な演算子」に分類された演算子の実装はメソッドなので、定義することが可能です。これらの演算子式を定義する例を以下に挙げます。%x(arg)バッククォート記法の実装はメソッドなのでこのように再定義が可能です。普通はこのメソッドを再定義するべきではありませんが、まれにOS(シェル)のコマンド実行の挙動に不具合がある場合などに利用できます。メソッド定義のネストネスト可能です。ネストされた定義式は、それを定義したメソッドが実行された時に定義されます。このことを除けば、普通のメソッド定義式と同じです。以下の例を参照してください。(他のインスタンスでも定義済み)メソッドの評価メソッドが呼び出されると、以下の順で式が評価されます。引数のデフォルト式も含め、すべてそのメソッドのコンテキストで評価されます。最後の式の値を返します。メソッドは定義する前に呼び出すことはできません。式..]end特異メソッドとはクラスではなくある特定のオブジェクトに固有のメソッドです。特異メソッドの定義はネストできます。クラスの特異メソッドはそのサブクラスにも継承されます。言い替えればクラスの特異メソッドは他のオブジェクト指向システムにおけるクラスメソッドの働きをすることになります。したオブジェクトを返します。おけるクラスメソッドとはクラスの特異メソッドのことです。クラスもオブジェクトなので、普通のオブジェクトと同様に特異メソッドを定義できます。したがって、何らかの方法でクラスオブジェクトにメソッドを定義すれば、それがクラスメソッドとなります。具体的には以下のようにして定義することが出来ます(モジュールも同様です)。