在 Java 中,我们可以通过以下方式进行类级别的初始化——在类初始化时会自动调用那段代码。我们可以在 Ruby 中实现类似的效果吗?
static {
initialization per class
}
只需将您的代码直接添加到类主体中:
class MyClass
@my_var = 'init1'
my_method 'init2'
def self.my_method(param)
end
end
加载类时将调用此代码。
PS:如果您正在从事 Rails 项目,您可能已经熟悉该概念:
class MyModel < ActiveRecord::Base
has_many
belongs_to
validates
scope
end
所有这些方法都在类级别上执行。
Ruby 的类是开放的,这意味着您可以在多个位置和运行时修改它们。因此 ruby 没有类初始化。
但是,您的类定义中的任何代码都将被执行:
class A
def foo
end
print 'Declaring class A'
end
class A
def bar
end
print 'Adding methods to class A'
end