Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Ruby

【Ruby】メソッドの書き方と使い方の基本

動画で解説を見る



開発環境

  • Ruby version: ruby 3.1.2

Rubyのメソッドとは

Rubyのメソッドとは、特定のオブジェクトに対して実行されるアクションや操作を定義するために使用されます。

メソッドを定義することにより、共通した処理をひとつにまとめることができ、メソッドを呼び出すことによって何度も再利用(実行)できるようにして扱いやすくしたコードの塊です。

また、Rubyのメソッドは標準で組み込まれているメソッド(関数)ではなく、ユーザーが独自に定義できる関数のことをメソッドと呼びますが、どこからでも呼べるのでほかの言語の「関数」とほぼ同じ意味として使われます。

公式リファレンス:https://docs.ruby-lang.org/ja/latest/class/Method.html

Rubyのメソッドの書き方

Rubyのメソッドの書き方をご紹介します。

Rubyのメソッドは「def」と「end」の間に実行したい処理を入れます。

また、メソッドが戻り値を返す場合、通常はメソッド本体内で「return」を使用して指定しますが、Rubyの場合は明示的な「return」を使わなくても、メソッド内の最後に評価された式が自動的に戻り値として返されます。

そのため、以下のように記述することができます。

一般的には上記の書き方が使われています。

Rubyのメソッドの命名規則

Rubyのメソッドの命名規則にはいくつかルールがあります。

  • 1文字目は英文字かアンダースコア(_)
  • 2文字目以降は英数文字、アンダーバー

メソッド名は大文字の英文字で開始することも可能ですが、クラス定義などをする場合はキャメルケースで記述されることが一般的なため、クラスとメソッドの命名を区別するためにメソッド名を大文字で開始するのはおすすめできません。

Rubyのメソッドの定義場所

Rubyのメソッドの定義場所にはルールがあります。

Rubyに限ったことではありませんが、プログラムは上から順番に読み込まれて実行されるため、メソッドを呼び出す「前」にメソッドを定義しなければエラーになります。

そのため、メソッドを定義する場所とメソッドの呼び出し位置には気をつけましょう。

Rubyのメソッドの使い方

Rubyのメソッドのよくあるパターンをサンプルコードを用いて使い方の解説をしていきます。

Rubyのメソッドに引数を使用しないパターン

Rubyのメソッドに引数を使用しないパターンです。

Rubyのメソッドで引数を使用しない場合は、上記のように括弧を省略することができます。

Rubyのメソッドに引数を使用するパターン

Rubyのメソッドに引数を使用するパターンです。

上記はメソッドを呼び出す際に引数1に値を渡し、メソッドが呼び出されたときに引数1で山田を受け取り、メソッドで定義されたnameに山田が代入されたという流れになります。

また、下記の書き方ではエラー出ます。

変数の有効範囲(スコープ)が決まっています。

メソッドの変数の有効範囲(スコープ)は、メソッド内で定義されている変数のみになるため、メソッド外で定義した変数をメソッド内で使うと未定義のエラーが発生します。

Rubyのメソッドに複数の引数を使用するパターン

Rubyのメソッドに複数の引数を使用するパターンです。

メソッドに複数の引数が定義する場合は、引数名をカンマ(,)で区切って続けて記述します。

また、メソッドの呼び出し側でも値をを渡す際はカンマ(,)で区切って続けて記述することで定義された引数に値を渡すことができます。

Rubyのメソッドで引数にデフォルト値を設定するパターン

Rubyのメソッドで引数にデフォルト値を設定するパターンです。

メソッドの引数nameに対してデフォルト値を代入しています。

そのため、メソッドを呼び出したときに引数に値を渡さなかった場合は、メソッド側で定義された値が代入されるため、「name」には「ゲスト」が代入されています。

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

上記ではメソッド引数1に対して山田が渡されているため、「name」には「山田」が代入されています。

注意点としては、メソッドを呼び出す側の値は順番にメソッドで定義した引数に渡されるため、引数の順番を間違えると、予期しない結果が起きてしまいます。

Rubyのメソッドで引数にキーワード引数を設定するパターン

Rubyのメソッドで引数にキーワード引数を設定するパターンです。

Ruby2.0以降ではキーワード引数を定義することができるため、引数の順番が前後したとしてもメソッドの呼び出し側で指定した引数に値を渡すことができます。

ただし、キーワード引数を使用している場合は、メソッドの呼び出し側でもキーワードに対して値を渡さなければエラーとなります。

また、下記のようにキーワード引数に対してもデフォルト値を定義することができます。

メソッドに引数を定義する場合は、どのような仕様にするかを検討して設計するといいでしょう。

おわりに

Rubyのメソッドの使い方を解説してきました。

メソッドは同じ処理を実行する場合に、何度も同じコードを書かずに済むだけでなく修正箇所がある場合に、メソッド内のコードだけ修正すれば良くなります。

また、メソッドをどの粒度で定義するかによってもシステム拡張性や保守性に深く関わってくるため、しっかりとメソッドを使いこなしていきましょう。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Ruby