В Ruby нет именованных параметров?

Это настолько просто, что я не могу поверить, что это меня зацепило.

def meth(id, options = "options", scope = "scope")
  puts options
end

meth(1, scope = "meh")

-> "meh"

Я предпочитаю использовать хэши для аргументов только потому, что так делают все, и это довольно чисто. Я думал это стандарт. Сегодня, примерно через 3 часа поисков ошибок, я проследил ошибку в этом геме, который я использовал, который предполагает именованные параметры будут учитываться. Они не.

Итак, мой вопрос таков: именованный параметр официально не учитывается в Ruby (1.9.3), или это побочный эффект чего-то, что я упустил? Если это не так, то почему?

32
задан Andrew Grimm 8 March 2012 в 06:45
поделиться