Ruby モジュールの簡単な使い方

Rubyで、モジュールの簡単な使い方を記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
モジュール作成
rubyは、以下の構文でモジュールを作成することが可能です。
module モジュール名(先頭は英数字の大文字)
処理
end
構文に従い、適当なモジュールを作成して実行してみます。
module Hoge
p "Hello World"
end
# "Hello World"
先頭の文字に小文字を使用するとエラーとなります。
module hoge
p "Hello World"
end
# class/module name must be CONSTANT
関数として使用
モジュールは、関数のように使用することが可能です。
module Hoge
def mul(x, y)
return x * y
end
def div(x, y)
return x / y
end
module_function :mul
module_function :div
end
p Hoge.mul(6, 3) # 18
p Hoge.div(6, 3) # 2
クラスにincludeして使用することもできます。
module Hoge
def mul(x, y)
return x * y
end
def div(x, y)
return x / y
end
end
class Foo
include Hoge
end
foo = Foo.new
p foo.mul(6, 3) # 18
p foo.div(6, 3) # 2
クラス内でモジュールを使用することも可能です。
module Hoge
def mul(x, y)
return x * y
end
def div(x, y)
return x / y
end
end
class Foo
include Hoge
def bar(x, y)
p mul(x, y)
end
end
foo = Foo.new
foo.bar(6, 3) # 18
インスタントメソッドとして使用
モジュールは、以下のようにインスタントメソッドとしても使用できます。
module Hoge
def mul(x, y)
return x * y
end
def div(x, y)
return x / y
end
end
class Foo
include Hoge
end
foo = Foo.new
# インスタントメソッドとして利用
p foo.mul(6, 3)
# 18
クラスメソッドとして使用
モジュールは、extendを使用すれば、クラスメソッドとしても使用できます。
module Hoge
def mul(x, y)
return x * y
end
def div(x, y)
return x / y
end
end
class Foo
extend Hoge
end
# クラスメソッドとして利用
p Foo.div(6, 3) # 2
名前空間として使用
モジュールは、以下のように名前空間としても使用できます。
module Hoge
class Foo
def self.hello
p "Hello Wold"
end
end
end
class Foo
def self.hello # クラスメソッド
p "こんにちは世界"
end
end
Hoge::Foo.hello
# "Hello Wold"
Foo.hello
# "こんにちは世界"
-
前の記事
jquery チェックボックスの状態を全て反転させる 2021.06.10
-
次の記事
javascript textareaのrequired属性の状態を取得する 2021.06.11
コメントを書く