передать массив в vararg в ruby? - PullRequest
17 голосов
/ 08 марта 2011

Функция ruby ​​exec() принимает vararg для своего второго параметра, чтобы предоставить аргументы для выполняемой программы. Тем не менее, я хотел бы передать массив аргументов (по разным причинам). Я мог бы обойти это, просто предоставив exec завершенную строку, но это включает оболочку (и экранирование возможных параметров). Кроме того, насколько я могу судить, объединение аргументов в одну строку передаст их как один аргумент моей программе - я хочу, чтобы их различие сохранялось. Можно ли передать массив в аргумент varargs в функции ruby? (обратите внимание, что в этом случае я не могу изменить exec (), чтобы принимать какие-либо переносы или сдвиги).

1 Ответ

32 голосов
/ 08 марта 2011

Вы можете использовать оператор splat следующим образом:

exec("echo", *["hello","world"])
...