我正在寻找一种在类定义中使用可选参数的方法,目的地是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}}方法中正确使用它们。
可以这样做,还是这两个选项?
答案 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)
将是一个包含已传递值的数组,如果没有传递值,则为空数组。