- 在类定义和模块定义中的代码会立刻执行,相反,在方法中的代码需要调用时候才会执行
class A
v1 = 1
p v1
def ab
v2 = 2
p v2
end
end
class A
v1 = 1
p v1
def ab
v2 = 2
p v2
end
end
A.new.ab
1. class
- 定义实例方法时,与module想比,一般定义calss就行,有时需要区分名称的时候可以用module的命名空间功能
2. module
- 定义只有类方法的数据类型时,倾向使用模块而不是类。只有当需要实例化时才使用类
class SomeClass
def self.some_method
puts "some_method"
end
def self.some_other_method
puts "some_other_method"
end
end
module SomeModule
module_function
def some_method
puts "some_method"
end
def some_other_method
puts "some_other_method"
end
end
SomeModule.some_method => 'some_method'