在Java中,我们可以通过以下方式进行类级别初始化 - 在初始化类时将自动调用该段代码。我们可以在Ruby中实现类似的效果吗?
static {
initialization per class
}
答案 0 :(得分:1)
只需将代码直接添加到类体:
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
所有这些方法都在类级别执行。
答案 1 :(得分:0)
Ruby的类是开放的,这意味着您可以在多个位置和运行时修改它们。因此ruby没有类初始化。
但是,您的类定义中的任何代码都将被执行:
class A
def foo
end
print 'Declaring class A'
end
class A
def bar
end
print 'Adding methods to class A'
end