「Ruby」extendでモジュールはクラスメソッドとして使用するサンプル

書式
1.モジュールの作成

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
module モジュール名
   def 関数名(引数名)
    処理コード
end
module_function :関数名
end
module モジュール名    def 関数名(引数名)     処理コード end module_function :関数名 end
module モジュール名
   def 関数名(引数名)
    処理コード
   end
   module_function :関数名
end

2.クラスの作成

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class クラス名
extend モジュール名
end
class クラス名 extend モジュール名 end
class クラス名
  extend モジュール名
end

クラス名.メソッド名(値1,…)
extendを使って、モジュールはクラスメソッドとして使用します。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#!/usr/bin/ruby
#モジュールの定義
module Cft
def add(a, b)
return a + b
end
end
#クラスの定義
class Tmd
extend Cft
end
#クラスメソッドaddを呼び出す 形式 クラス名.メソッド名
p "モジュールはクラスメソッドとして使用する結果"
p Tmd.add(17, 23)
#!/usr/bin/ruby #モジュールの定義 module Cft def add(a, b) return a + b end end #クラスの定義 class Tmd extend Cft end #クラスメソッドaddを呼び出す 形式 クラス名.メソッド名 p "モジュールはクラスメソッドとして使用する結果" p Tmd.add(17, 23)
#!/usr/bin/ruby
#モジュールの定義
module Cft
  def add(a, b)
    return a + b
  end
end
#クラスの定義
class Tmd
  extend Cft
end

#クラスメソッドaddを呼び出す 形式 クラス名.メソッド名
p "モジュールはクラスメソッドとして使用する結果"
p Tmd.add(17, 23)

実行結果
“モジュールはクラスメソッドとして使用する結果"
40

Ruby

Posted by arkgame