Есть ли способ заставить использование именованных параметров вместо вашего стандартного имя_функции (var, var)? - PullRequest
0 голосов
/ 11 января 2012

Мне действительно нравятся именованные параметры, так как они очень помогают с читабельностью моего кода.

Ruby использует псевдо-именованные параметры с хэшами, и я реализовал несколько методов, использующих эту технику, но добавление этих трех строк к каждому методу с параметрами будет громоздким:

def something_does_something_with(parameters = {})
  default_params = {:some => option, :another => something}
  parameters = default_params.merge(parameters)
  ...
end

или заголовок метода может быть таким:

def something_does_something_with(parameters = {:some => option, :another => something})

но тогда я думаю, что если я вообще предоставлю какие-либо параметры, он переопределяет весь хэш по умолчанию.

Когда я работал с Objective-C, именованные переменные были моей любимой вещью во вселенной программирования.

Есть ли способ изменить способ, которым Ruby по умолчанию смотрит на заголовки методов, так что named-parameterss требуется или, по крайней мере, проще?

1 Ответ

3 голосов
/ 11 января 2012

Вы определенно не можете использовать второй пример, потому что он будет работать только в том случае, если вы передаете полный набор параметров.

В отношении вашего первого примера вы можете сделать его коротким, как это:

def something_does_something_with(parameters = {})
  parameters = {:some=>option,:another=>something}.merge(parameters)
  ...
end

И, наконец, названные параметры планируется реализовать в следующей версии Ruby - Ruby 2.0

...