在Ruby中初始化

时间:2009-11-07 15:01:33

标签: ruby initialization

我曾经有过这个

public constructor_name() {
   this(param)
}

public constructor_name(int param) {
  this.param = param
}
在Java中使用ruby,我们有这种自引用构造函数吗?

2 个答案:

答案 0 :(得分:12)

由于Ruby是一种动态语言,因此您不能拥有多个构造函数(或者就此而言构造函数链接)。例如,在以下代码中:

class A
   def initialize(one)
     puts "constructor called with one argument"
   end
   def initialize(one,two)
     puts "constructor called with two arguments"
   end
end

您可能希望有2个具有不同参数的构造函数。但是,评估的最后一个将是类的构造函数。在这种情况下initialize(one,two)

答案 1 :(得分:9)

那些不是有效的Java,但我认为你得到的是你想要一个可选的参数。在这种情况下,您可以只为参数赋予默认值

 def initialize(param=9999)
 ...
 end

或者您可以使用splat参数:

def initialize(*params)
  param = params.pop || 9999
end