Разрешение нескольких аргументов или одного аргумента массива - PullRequest
0 голосов
/ 31 марта 2012

Часто я хочу придать гибкость форме аргументов и ожидать, что либо один аргумент массива, либо несколько аргументов будут обрабатываться вместе как один массив. Таким образом, следующие два использования приведут к одной и той же вещи.

foo([arg1, arg2, ...])
foo(arg1, arg2, ...)

Как лучше всего реализовать такой метод?

1 Ответ

2 голосов
/ 31 марта 2012

Как насчет этого:

def foo(*bar)
  bar.flatten!
  p bar #or whatever
end

Это гарантирует, что независимо от того, что введено, вы получите из него один плоский массив.

...