可选参数的Ruby类定义可能吗?

时间:2018-02-24 12:42:35

标签: ruby class parameters

我正在寻找一种在类定义中使用可选参数的方法,目的地是class MyClass def initialize(parameters) # blah blah do something end end a = MyClass.new('alpha') # works fine b = MyClass.new # throws ArgumentError 方法。

'initialize': wrong number of arguments (given 0, expected 1) (ArgumentError)

错误:

initialize

我正在寻找一种可选参数的方法。有时我想创建一个没有参数的对象,但不想跳错。有时我想提供参数并在{{1}}方法中正确使用它们。

可以这样做,还是这两个选项?

1 个答案:

答案 0 :(得分:1)

是的,你可以像普通的方法定义那样做。您必须为要选择的参数提供默认值。这意味着如果未提供参数的值,则将使用默认值。

<Console name="STDOUT" target="SYSTEM_OUT">
   <PatternLayout pattern ="[%-5p] %C{2} - %m \n" />
</Console>

另外,您可以使用:

class MyClass
  def initialize(value = "default value")
    @value = value
  end
end

def initialize(*parameters) 将是一个包含已传递值的数组,如果没有传递值,则为空数组。