在Ruby中自动进行类级别初始化

时间:2013-05-26 08:29:51

标签: java ruby

在Java中,我们可以通过以下方式进行类级别初始化 - 在初始化类时将自动调用该段代码。我们可以在Ruby中实现类似的效果吗?

static {
    initialization per class   
}

2 个答案:

答案 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