Rubyにおける引数

Rubyにおける引数の使い方について説明します。Rubyもほかのプログラミング言語と同様に、引数を使うことでメソッド内で任意のデータを扱うことができます。

引数とは?

引数とは、メソッドに対して外部から値を渡すための仕組みです。以下より具体例をあげて説明していきます。

引数を使わないメソッド定義

例えば、数値を2倍にするという単純なメソッドを定義するとします。

引数を使わないと、以下のようにあらかじめ決められた値(この場合は10)を2倍にする処理しかできません。

これでは、例えば5を2倍にしたいという時には使うことができません。そこで、必要になるのが引数です。

引数を使ったメソッド定義

次に引数を使ったメソッド定義の例です。引数つきのメソッド定義は以下のような書式です。引数はいくつでも定義することができます。

先ほどの、数値を2倍にするメソッドを引数つきで定義すると以下のようになります。

calc(number)の部分で、calcメソッドに対してnumberという引数を渡すと定義しています。

そして、メソッド内では number * 2で、渡された引数を2倍にしています。

引数つきのメソッド呼び出し

次にメソッドを引数つきで呼び出すのは、以下のような書式になります。

先ほど定義したcalcメソッドを引数つきで呼び出すのは、以下のようになります。

引数で渡された値10はメソッドの変数numberに代入され、 number * 2の部分で、2倍にされます。

こうすることで、任意の値を2倍にするメソッドを定義することができました。

引数を使う意味

このように、引数を使うことで外部からメソッドに値を渡すことができ、メソッドがより汎用的になります。もちろん、全てのメソッドで引数を絶対に使う必要はありません。

引数が複数あるメソッド

上記では、メソッドの引数は1つでしたが、複数の引数を設定することもできます。

今度は値を2倍ではなく、任意の倍数にするというメソッドの例です。引数を複数定義する場合は、以下のようにカンマ(,)で区切ります。また、メソッドの呼び出しも、カンマで区切ります。

上記の例の場合は、10と3が引数として渡されているので、「10 × 3」で30が返り値となります。

引数のデフォルト値

また、引数にはデフォルト値を設定することもできます。メソッドの呼び出しで引数を渡さない場合は、このデフォルト値が引数の値となります。

デフォルト値を設定する場合の書式は、以下のようになります。すべての引数にデフォルト値を設定することもできますし、どれか1つだけデフォルト値を設定することもできます。

通常、メソッド定義ではデフォルト値のない引数を先に並べ、デフォルト値のある引数はその後に書くことが多いです。

先ほどのcalcメソッドの引数number2にデフォルト値として2を設定します。

以下は、引数を渡す場合と、引数を渡さずにデフォルト値を使う例です。

引数を渡さない場合は、引数number2はデフォルト値の2が代入され、「10 × 2」で20となることがわかります。

なお、デフォルト値が設定されていない引数を省略すると「wrong number of arguments」といったエラーとなるので気をつけてください。