Ruby 模块与混入机制全解析
1. 模块基础
在 Ruby 里,模块(Module)是一种非常实用的编程工具。虽然模块类有超类,即 Object ,但我们创建的具名模块并没有超类。那么模块有什么用呢?主要有两个方面:命名空间和混入(Mixins)。
1.1 模块作为命名空间
模块可以看作是围绕一组方法、常量和类的命名 “包装器”。模块内的各种代码共享同一个 “命名空间”,它们彼此可见,但对模块外的代码不可见。
Ruby 类库定义了许多模块,比如 Math 和 Kernel 。 Math 模块包含数学方法,像 sqrt 用于返回平方根,还有常量 PI ; Kernel 模块包含许多我们从一开始就使用的方法,如 print 、 puts 和 gets 。
下面是一个自定义模块的示例:
# modules1.rb
module MyModule
GOODMOOD = "happy"
BADMOOD = "grumpy"
def greet
return "I'm #{GOODMOOD}. How are you?"
end
def MyModule.greet
return "I'm #{BADM
超级会员免费看
订阅专栏 解锁全文
54

被折叠的 条评论
为什么被折叠?



