Добавление новых аргументов в функцию при сохранении обратной совместимости в Ruby - PullRequest
0 голосов
/ 28 августа 2009

У меня есть старая функция, которая вызывается много раз в моем приложении. Я хотел бы немного обновить его, что предполагает добавление новых аргументов.

Когда я писал эту функцию, я не понимал, что преимуществом является использование хэша в качестве единственного параметра (упомянутого здесь: 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 Ответ

3 голосов
/ 28 августа 2009
def old_function(some_arg, hash = {})
  ## Code
end

Хэш = {} устанавливает хэш на пустой хэш, если он не задан, поэтому более старый код все равно будет передаваться в метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...