默认情况下,将参数设为数组有什么意义?

时间:2015-03-24 14:12:06

标签: ruby

有时候,当一个方法需要给一个数组作为参数时,我看到这样定义的方法:

def method(argument = [])
  ... 
end

我不明白为什么使用= []。据我所见,它什么都没有增加。如果你确实提供了一个数组作为参数,那么该方法将以任何一种方式运行,如果你没有,它将以任何一种方式抛出错误。这只是惯例吗?或者它可能是一个视觉辅助,所以程序员可以很容易地看到方法需要什么类型的数据?

2 个答案:

答案 0 :(得分:5)

如果你在这里设置默认参数,如果不带参数调用此方法,它不会引发错误:

method
# => []

答案 1 :(得分:0)

指定默认值允许您在没有该参数的情况下使用AND调用该方法。

我发现在向现有方法添加新变量时它很有用。如果我为新变量指定一个默认值,我不必担心改变以前只有前一组变量的方法的调用。但是,如果我无法为新变量指定默认值,我将不得不浏览代码并搜索所有方法调用,并修改它以包含新变量。