在函数中添加新的args,同时仍保持Ruby的向后兼容性

时间:2009-08-28 05:04:56

标签: ruby methods arguments

我有一个在我的应用程序中多次调用的旧函数。我想稍微更新一下,这涉及添加一些新的参数。

当我编写这个函数时,我不明白将哈希作为唯一参数的好处(这里提到:http://www.skorks.com/2009/08/more-advanced-ruby-method-arguments-hashes-and-blocks/

我有:

def old_function(some_arg)
 puts some_arg
end

我想重写一下这样的哈希:

def old_function(some_arg, hash)
   puts hash[:new_stuff] + "--" + some_arg
end

虽然这不会破坏:

puts old_function('greetings')

1 个答案:

答案 0 :(得分:3)

def old_function(some_arg, hash = {})
  ## Code
end

如果没有给出散列,则散列= {}将散列设置为空散列,因此较旧的代码仍会传递给方法。