Module
Module的两个功能
1. as namespace: 同c++。如下
module A
class C
...
end
end
module B
class C
..
end
end
实例化object
a = A::C.new
b = B::C.new
A::C与B::C是不同的
2. for mix in. 类似interface, 使得代码可以重复使用
module X
....#变量和method
end
class A
include X
end
这里A中通过include重复利用module X的代码
Enumerable Module
include Enumberable 可以mix in reduce select map 等方法。