モジュールのメソッドを関数のように呼び出す
モジュールはクラスの中にインクルードして利用することもできますが、モジュールの中に定義したメソッドを関数のように呼び出して使うこともできます。ここでは Ruby でモジュールのメソッドを関数のように呼び出す方法について解説します。
(Last modified: )
モジュールのメソッドを関数のように呼び出す
モジュールを関数のように呼び出して使う方法です。例えば次のようなモジュールを定義します。
module CalcModule def getMinValue(x, y) if x < y return x else return y end end end
このモジュールではメソッドを一つ定義しています。このメソッドをモジュールの外から呼び出して利用するには、モジュールの中に次のような記述を追加します。
module_function :メソッド名
module_function
のあとにコロン(:)を記述し、そのあとにメソッド名を記述します。先ほどの例であれば次のように記述します。
module CalcModule def getMinValue(x, y) if x < y return x else return y end end module_function :getMinValue end
これで getMinValue
メソッドは外部から関数のように呼び出して実行できます。
次にモジュールの中のメソッドを呼び出すには次のように行います。
モジュール名.メソッド名
モジュールはクラスのようにインスタンスを作成できませんので、このようにモジュール名を指定してメソッドを実行します。
module CalcModule def getMinValue(x, y) if x < y return x else return y end end module_function :getMinValue end puts(CalcModule.getMinValue(10, 8)) puts(CalcModule.getMinValue(7, 15))
以上のようにモジュールの中で定義されたメソッドを関数のように呼び出すことができます。
モジュールをインクルードしてからメソッドを呼び出す
モジュールの中で定義したメソッドを呼び出すには「モジュール名.メソッド名」のように呼び出します。ただ呼び出す回数が多い場合などは先にモジュールをインクルードしておくことで単に「メソッド名」の形で実行することもできます。
モジュールをインクルードするには次のように記述します。
include モジュール名
include
文を記述してモジュールをインクルードした後であればモジュールに含まれるメソッドを「メソッド名」と言う形式で実行することができます。
先ほどのサンプルは次のように記述することができます。
module CalcModule def getMinValue(x, y) if x < y return x else return y end end module_function :getMinValue end include CalcModule puts(getMinValue(10, 8)) puts(getMinValue(7, 15))
では実際にサンプルプログラムを作成してみます。
# encoding: UTF-8 module CalcModule def getMinValue(x, y) if x < y return x else return y end end module_function :getMinValue end puts(CalcModule.getMinValue(10, 8)) puts(CalcModule.getMinValue(7, 15))
上記を実行すると次のように表示されます。
-- --
Ruby でモジュールのメソッドを関数のように呼び出す方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。