Rubyにおける引数の使い方について説明します。Rubyもほかのプログラミング言語と同様に、引数を使うことでメソッド内で任意のデータを扱うことができます。
引数とは?
引数とは、メソッドに対して外部から値を渡すための仕組みです。以下より具体例をあげて説明していきます。
引数を使わないメソッド定義
例えば、数値を2倍にするという単純なメソッドを定義するとします。
引数を使わないと、以下のようにあらかじめ決められた値(この場合は10)を2倍にする処理しかできません。
1 |
これでは、例えば5を2倍にしたいという時には使うことができません。そこで、必要になるのが引数です。
引数を使ったメソッド定義
次に引数を使ったメソッド定義の例です。引数つきのメソッド定義は以下のような書式です。引数はいくつでも定義することができます。
1 |
先ほどの、数値を2倍にするメソッドを引数つきで定義すると以下のようになります。
1 |
1 |
の部分で、calcメソッドに対してnumberという引数を渡すと定義しています。
そして、メソッド内では
1 |
で、渡された引数を2倍にしています。
引数つきのメソッド呼び出し
次にメソッドを引数つきで呼び出すのは、以下のような書式になります。
1 |
先ほど定義したcalcメソッドを引数つきで呼び出すのは、以下のようになります。
1 |
引数で渡された値10はメソッドの変数numberに代入され、
1 |
の部分で、2倍にされます。
こうすることで、任意の値を2倍にするメソッドを定義することができました。
引数を使う意味
このように、引数を使うことで外部からメソッドに値を渡すことができ、メソッドがより汎用的になります。もちろん、全てのメソッドで引数を絶対に使う必要はありません。
1 |
引数が複数あるメソッド
上記では、メソッドの引数は1つでしたが、複数の引数を設定することもできます。
今度は値を2倍ではなく、任意の倍数にするというメソッドの例です。引数を複数定義する場合は、以下のようにカンマ(,)で区切ります。また、メソッドの呼び出しも、カンマで区切ります。
1 |
上記の例の場合は、10と3が引数として渡されているので、「10 × 3」で30が返り値となります。
引数のデフォルト値
また、引数にはデフォルト値を設定することもできます。メソッドの呼び出しで引数を渡さない場合は、このデフォルト値が引数の値となります。
デフォルト値を設定する場合の書式は、以下のようになります。すべての引数にデフォルト値を設定することもできますし、どれか1つだけデフォルト値を設定することもできます。
通常、メソッド定義ではデフォルト値のない引数を先に並べ、デフォルト値のある引数はその後に書くことが多いです。
1 |
先ほどのcalcメソッドの引数number2にデフォルト値として2を設定します。
1 |
以下は、引数を渡す場合と、引数を渡さずにデフォルト値を使う例です。
1 |
引数を渡さない場合は、引数number2はデフォルト値の2が代入され、「10 × 2」で20となることがわかります。
なお、デフォルト値が設定されていない引数を省略すると「wrong number of arguments」といったエラーとなるので気をつけてください。