定义模块:
module MyModule
def say_hello
puts "Hello from the module!"
end
def say_goodbye
puts "Goodbye from the module!"
end
end
使用模块:
class MyClass
include MyModule # 使用 include 关键字包含模块
def additional_method
puts "This method is in the class."
end
end
# 创建类的实例
obj = MyClass.new
# 调用模块中的方法
obj.say_hello
obj.say_goodbye
# 调用类中的方法
obj.additional_method
在上述示例中,MyModule 包含两个方法,然后通过 include 关键字将这个模块包含到 MyClass 类中。这样,MyClass 类的实例就能够使用模块中定义的方法。
命名空间(Namespace):
模块还可以用作命名空间,防止命名冲突:
module MyNamespace
class MyClass
def my_method
puts "Method inside the namespace class."
end
end
end
# 创建命名空间类的实例
obj = MyNamespace::MyClass.new
# 调用命名空间类的方法
obj.my_method
这里,MyClass 被包含在 MyNamespace 模块中,通过 :: 运算符可以访问命名空间内的类。
Mixin(混入):
模块还可以用于实现混入,允许在多个类之间共享功能:
module Jumpable
def jump
puts "Jumping!"
end
end
class Cat
include Jumpable
end
class Kangaroo
include Jumpable
end
cat = Cat.new
kangaroo = Kangaroo.new
cat.jump
kangaroo.jump
在上述示例中,Jumpable 模块包含了 jump 方法,然后通过 include 将该模块混入到 Cat 和 Kangaroo 类中,使它们都具有 jump 方法。
这是一些关于Ruby模块的基本概念和用法。
转载请注明出处:http://www.pingtaimeng.com/article/detail/6454/Ruby